1. typeof 操作符返回 object
则该变量可能是 object ,也可能是 null -------- 因为 null 被认为是一个空对象引用
console.log(typeof null) // object
2. 如果一个变量未声明,只能执行typeof操作,返回 undefined
console.log(typeof age) // undefined
3. NaN: (not a number)
有两个特殊的点:
(1)NaN 不等于 NaN , 不与自身相等
console.log(NaN == NaN) // false
(2) 任何涉及到 NaN 的 运算都返回 NaN
isNaN()函数也可适用于对象.在调用isNaN()函数过程中,首先会调用对象的valueOf()方法,然后确定返回值是否能够转换成数值.如果不能,则基于这个返回值再调用toString()方法,再测试返回值.
var person = {
name: 'zhoufangbing',
age: 22
}
console.log(isNaN(person)) // true
4. Number() 转化不了的返回NaN
console.log(Number(null)) // 0
console.log(Number(undefined)) // NaN
5. 转化成字符串:String() 和 toString()
区别:null 和 undefined 没有toString(),null 和 undefined 要想转化成字符串,需要用 String()
6. 任何数与NaN比较,结果都是false
7. 在比较相等前,不能将 null 和 undefined 转化成任何值
console.log(undefined === 0) // false
console.log(null === 0) // false
8. 逗号运算符
逗号运算符可用于赋值,(必须与括号搭配,否则不能体现,的作用)返回表达式的最后一项~
var x = 1;
x = (x++, x);
console.log(x);
// 2
x = (2, 3);
console.log(x);
// 3
5. 函数传参:arguments 数组来存储函数接收的参数
注意:arguments数组的长度是由函数传入参数的个数来决定的,调用函数时,具体传入多少个参数,长度就是多少,不是由定义函数时的命名参数的个数决定的。