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 之間並無實質上的區別。