undefined 和 not defined 看起來是差不多意思,在JS中大有不同:
undefined 是JS中五種簡單數據類型(undefined,string,number, null,boolean)中的一種,表示一個已聲明但未初始化的變量,或一個並不存在的對象屬性
而當使用一個尚未定義的的變量時,會出錯:
Uncaught ReferenceError: b is not defined
對未初始化的變量執行 typeof操作符會返回 undefined,但是對未聲明的變量執行typeof操作符也會返回undefined 。請查看以下例子:
<script type="text/javascript">
var a;
console.log("a申明未賦值,輸出爲"+a);
console.log("c未聲明,typeof輸出爲"+ typeof c);
console.log("b未聲明,輸出爲"+b);
</script>
結果輸出:
a申明未賦值,輸出爲undefined
c未聲明,typeof輸出爲undefined
Uncaught ReferenceError: b is not defined
undefined 和 null
null 表示無值
undefined表示一個已聲明但未初始化的變量,或一個並不存在的對象屬性
只能用===來判斷undefined,因爲==會默認爲 undefined等於null
下例:
var t1=null
var t2
if (t1==undefined) {alert("t1 is undefined")}
if (t2===undefined) {alert("t2 is undefined")}
結果:會依次彈出 “t1 is undefined”“t2 is undefined”