js总结1
NaN是一个特殊的数量值,不表示一个数字,尽管下面的代码仍然是返回类型为number
console.log(typeof NaN);//number
console.log(typeof NaN==='number');//true
可见typeof不能真正区分数字与NaN的区别。
为了进一步区分NaN与数字,可以使用isFinite函数,如果有限数值,该函数将返回true,如果是NaN、正负无穷大的数值,则返回false。
关于NaN的运算规则:
如果NaN是数学运算中的一个运算数,那么它与其他运算数的运算结果就会是NaN
NaN===NaN;//false;(我自己就理解成虽然不是number,但不是number的有好多,也一定不会都相等)
NaN!==NaN;//true;
undefined的值在如下情况下出现:
- 从一个对象中获取某个属性,如果该对象及其原型链中的对象都没有该属性,该属性的值为undefined。
- 一个函数没有显示通过return语句将返回值范湖给其调用者,其返回值就是undefined,但在使用new调用函数时例外。
- javascript的函数可以是用声明任意多个形参,当该函数实际被调用时,传入的参数的个数如果小于声明的形式参数的个数,那么多余的形式参数的值就是undefined