写给未来


  • 主页

  • 关于

  • 标签

  • 分类

  • 归档

记录JS一些特殊的属性

Posted on 2020-03-18 | In 前端

变量

在函数作用域内 加var定义的变量是局部变量,不加var定义的就成了全局变量

位运算

在JavaScript中 位操作符 只有1个功能:进行位运算。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
/* 测试类型1 */
var str1 = '9';
var str2 = '5';
console.log(str1 & str2); // 结果为 1
console.log(typeof (str1 & str2)); //结果为 number 类型
那么JavaScript中 **位操作符 **去操作 非数值 是怎样处理的呢。

/* 测试类型2 */
var number1 = 9;
var number2 = 5;
console.log(number1 & number2); 结果为 1
/* 测试类型3 */
var obj1 = {
valueOf: function() {
return 9;
}
}
var obj2 = {
valueOf: function() {
return 5;
}
}
console.log(obj1 & obj2); // 结果为 1

9 的二进制:1001
5 的二进制:0101
& 操作结果:0001 = 1
从上面代码中我们发现了一些倪端,string类型、number类型、object类型操作结果相等,那么这里又涉及到了另一个知识点,数值转换。如果操作数不是数值类型,就会根据一定规则把它转换成数值,若不能转化成数值则为NaN。

如果NaN & NaN会得出什么结果?

console.log(NaN & NaN); // 结果为 0

leir

技术博客,记录技术学习及文章翻译

1 posts
1 categories
1 tags
© 2020 leir
Powered by Hexo
|
Theme — NexT.Gemini v5.1.4