JavaScript 数据类型中有几个特殊的数值,开发过程当中可能会常常用到,却经常忽略自己存在的问题javascript
undefined类型只有一个值,即undefined。java
null类型也只有一个值,即null。ui
他们的名称既是类型也是值。spa
undefined和null常被用来表示‘空’值或‘不是值’的值。两者之间有细微差异。code
null 是一个特殊关键字,不是标识符,咱们不能将其看成变量来使用和赋值操做。ip
undefined 倒是一个标识符,能够看成变量使用和赋值。开发
function foo() {
"use strict";
var undefined = 2;
console.log( undefined ); // 2
}
foo();
复制代码
function foo() {
undefined = 2; // 很是糟糕的作法!
}
foo();
function foo() {
"use strict";
undefined = 2; // TypeError!
}
foo();
复制代码
永远不要从新定义undefinedit
undefined是一个内置标识符(除非被从新定义),它的值是undefined,经过void运算符便可获得该值。io
var a = 42;
console.log( void a, a ); // undefined 42
复制代码
void 并不改变表达式的结果, 只是让表达式不返回值。console
咱们用 void 0 来得到 undefined(这主要源自 C 语言,固然使用 void true 或其余 void 表达式也是能够的)。void 0、void 1 和 undefined 之间并无实质上的区别。