funme / coding

loving && coding && living
0 stars 0 forks source link

JS基础-特殊值 #19

Open yangmaoHu opened 5 years ago

yangmaoHu commented 5 years ago

Infinity--Infinity 无穷大

yangmaoHu commented 5 years ago

NaN(Not-A-Number)--NaN NaN 属性的初始值就是 NaN,和 Number.NaN 的值一样。

NaN === NaN;        // false
Number.NaN === NaN; // false
isNaN(NaN);         // true
isNaN(Number.NaN);  // true

等号运算符(== 和 ===) 不能被用来判断一个值是否是 NaN。必须使用 Number.isNaN() 或 isNaN() 函数。在执行自比较之中:NaN,也只有NaN,比较之中不等于它自己。

yangmaoHu commented 5 years ago

undefined -- undefined

一个没有被赋值的变量的类型是undefined。

一个函数如果没有使用return语句指定返回值,就会返回一个undefined值。

严格相等和undefined(若变量没声明,会报错)
var x;
if (x === undefined) {
// 执行这些语句
} else {
// 这些语句不会被执行
}

Type操作符和undefined(不会在一个变量没有被声明的时候抛出一个错误)
便面使用
// 这里没有声明y
if(typeof y === 'undefined') {       // 没有错误,执行结果为true
   console.log("y is " + typeof y )  // y is undefined
}
if(y === undefined) {                
   // ReferenceError: y is not defined
}

Void操作符和undefind
var x;
if(x === void 0) {
    // 执行这些语句
}
// 没有声明y
if(y === void 0) {
    // 抛出一个RenferenceError错误(与`typeof`相比)
}
yangmaoHu commented 5 years ago

null--null

typeof null        // "object" (因为一些以前的原因而不是'null')
typeof undefined   // "undefined"
null === undefined // false
null  == undefined // true
null === null // true
null == null // true
!null //true
isNaN(1 + null) // false
isNaN(1 + undefined) // true