JS中null与undefined的区别?
1. 相同点
if 判断语句中,两者都会被转换为false
2. 不同点
null
null表示一个值被定义了,但是这个值是空值
作为函数的参数,表示函数的参数不是对象
作为对象原型链的终点 (Object.getPrototypeOf(Object.prototype))
定义一个值为null是合理的,但定义为undefined不合理(var name = null)
null示例:
NaN
NaN 属性是代表非数字值的特殊值。该属性用于指示某个值不是数字。可以把 Number 对象设置为该值,来指示其不是数字值。
提示:请使用 isNaN() 全局函数来判断一个值是否是 NaN 值。
提示:请使用 isNaN() 来判断一个值是否是数字。原因是 NaN 与所有值都不相等,包括它自己。
语法
Number.NaN
说明
Number.NaN 是一个特殊值,说明某些算术运算(如求负数的平方根)的结果不是数字。
Number转换的值不同,Number(null)输出为0, Number(undefined)输出为NaN。
方法 parseInt() 和 parseFloat() 在不能解析指定的字符串时就返回这个值。
对于一些常规情况下返回有效数字的函数,也可以采用这种方法,用 Number.NaN 说明它的错误情况。
JavaScript 以 NaN 的形式输出 Number.NaN。请注意,NaN 与其他数值进行比较的结果总是不相等的,包括它自身在内。因此,不能与 Number.NaN 比较来检测一个值是不是数字,而只能调用 isNaN() 来比较。
资料:
undefined
undefined表示缺少值,即此处应该有值,但是还没有定义
变量被声明了还没有赋值,就为undefined
调用函数时应该提供的参数还没有提供,该参数就等于undefined
对象没有赋值的属性,该属性的值就等于undefined
函数没有返回值,默认返回undefined
undefined示例:
var i;
console.log(i) // undefined变量被声明了还没有赋值
function f(x){
console.log(x)// undefined调用函数时应该提供的参数还没有提供
}
f() // undefined调用函数时应该提供的参数还没有提供
var o = new Object();
console.log(o.p) // undefined对象没有赋值的属性
var x = f();
console.log(x) // undefined函数没有返回值,默认返回undefined
VM194:2 undefined
VM194:5 undefined
VM194:11 undefined
VM194:5 undefined
VM194:14 undefined
undefined
JS中判断null、undefined与NaN的方法?
1.判断undefined:
1 2 3 4 |
|
说明:typeof 返回的是字符串,有六种可能:"number"、"string"、"boolean"、"object"、"function"、"undefined"
2.判断null:
1 2 3 4 |
|
3.判断NaN:
1 2 3 4 |
|
说明:如果把 NaN 与任何值(包括其自身)相比得到的结果均是 false,所以要判断某个值是否是 NaN,不能使用 == 或 === 运算符。
提示:isNaN() 函数通常用于检测 parseFloat() 和 parseInt() 的结果,以判断它们表示的是否是合法的数字。当然也可以用 isNaN() 函数来检测算数错误,比如用 0 作除数的情况。
4.判断undefined和null:
1 2 3 4 5 |
|
1 2 3 4 5 |
|
说明:null==undefined
<!--EndFragment-->
5.判断undefined、null与NaN:
1 2 3 4 5 |
|
提示:一般不那么区分就使用这个足够。
资料:
https://www.jb51.net/article/48481.htmhttps://www.jb51.net/article/48481.htm