簡介
undefined,英譯過來即“未定義”的意思。undefined,屬於數據結構中的特殊字元,常出現在數據結構、C語言中,用來聲明變數使用的。通常用於指示變數尚未賦值
對未定義值的引用返回特殊值undefined。動作腳本代碼typeof(undefined)返回字元串“undefined”。
undefined類型的唯一值是undefined。當將undefined轉換為字元串時,它轉換為空字元串。
undefined值與特殊值null 相似。事實上,當使用相等運算符對null和undefined進行比較時,它們的比較結果為相等
說明
undefined屬性是Global對象的一個成員,該屬性在腳本引擎初始化後可用。如果已聲明了一個變數但還沒有初始化,那么該變數的值就是undefined。
如果還沒有聲明變數,那么就不能將其與undefined進行比較,但是可以將該變數的類型與字元串“undefined"”進行比較。
當顯式地測試變數或將變數設定為undefined時,undefined屬性是很有用的。
注釋
undefined數據類型的值只有一個:undefined
undefined參與任何數值計算時,其結果一定是null。
無法使用for/in循環來枚舉undefined屬性,也不能用delete 運算符來刪除它。
undefined不是常量,可以把它設定為其他值。
當嘗試讀取不存在的對象屬性時也會返回undefined。
示例
在這個示例中,變數x尚未聲明,所以其值為未定義。在代碼的第一部分,使用相等運算符(==)比較x的值與值“未定義”,並將相應的結果傳送到輸出視窗。在代碼的第二部分,使用相等運算符比較值null(空)與“未定義”。
1 /*
2 變數x“未聲明”。
3 */
4 trace("x的值為"+x);
5 if(x==undefined)/*如果變數X為未定義*/{
6 trace("x是未定義的。");
7 }else/*否則*/{
8 trace("x不是未定義的。");
9 }
1 trace("類型定義(x)為"+類型定義(x));
2 if(null==undefined)/*如果空等於未定義*/{
3 trace("空null和未定義undefined都相等");
4 }else/*否則*/{
5 trace("空null和未定義undefined都不相等");
6 }
下面的結果顯示在輸出視窗中:
x的值是X是未定義
類型定義(x)是未定義
空null和未定義undefined都相等
注意:在ECMA-262規範中,將undefined轉換為字元串“undefined”,而不轉換為空字元串。這是動作腳本與ECMA-262規範之間的差異。