在 JavaScript 中值 undefined 和 null 都表示 "无", 那么它们之间有什么区别? 下面本篇文章就来给大家介绍一下 undefined 和 null 的区别, 希望对大家有所帮助.
undefined:
在 JavaScript 中, undefined 是一个没有设置值的变量.
typeof 一个没有值的变量会返回 undefined.
null:
在 JavaScript 中 null 表示 "什么都没有".
null 是一个只有一个值的特殊类型. 表示一个空对象引用.
undefined 和 null 的区别:
● undefined 表示一个变量没有被声明, 或者被声明了但没有被赋值(未初始化), 一个没有传入实参的形参变量的值为 undefined, 如果一个函数什么都不返回, 则该函数默认返回 undefined.null 则表示 "什么都没有", 即 "空值".
● JavaScript 将未赋值的变量默认值设为 undefined;JavaScript 从来不会将变量设为 null. 它是用来让程序员表明某个用 var 声明的变量时没有值的;
● undefined 不是一个有效的 JSON, 而 null 是;
● null 和 undefined 的值相等, 但类型不等: undefined 的类型 (typeof) 是 undefined;null 的类型 (typeof) 是 object.
- null == undefined // true
- null === undefined // false
- typeof undefined // undefined
- typeof null // object
● null 和 undefined 之间的主要区别在于它们被转换为原始类型的方式.
在'null'上执行算术转换时, 则值为 0, 可以使用以下代码片段验证此转换.
- var v1= 5+ null;
- console.log(v1)
执行时, 此代码的将输出
5
但是,"undefined" 不执行任何此类转换. 如果您尝试将 "undefined" 添加到数字中, 您将获得 NaN 或 Not-a-Number. 以下代码片段说明了 "undefine" 的这一方面.
- var v2= 5+ undefined;
- console.log(v2)
执行时, 代码将输出:
NaN
来源: http://www.css88.com/qa/javascript/10504.html