JS中六種資料型別(一)——Undefined
轉載自:http://blog.csdn.net/a2296096931/article/details/51072448 侵刪
JS中有6種資料型別:Undefined、Null、Boolean、Number、String和Object。JS中不支援任何建立自定義型別的機制,而所有值最終都將是這6種資料型別。其資料型別的動態性特點足以表示所有資料。JS提供typeof操作符來檢測變數的資料型別。
(typeof返回的是字串有六種可能:"number","string","boolean","object","function","undefined")。
我們先來看看Undefined這個資料型別吧,Undefined型別只有一個特殊的值——undefined。
(1)變數被聲明瞭,但沒有賦值時,就等於undefined。
(2) 呼叫函式時,應該提供的引數沒有提供,該引數等於undefined。
(3)物件沒有賦值的屬性,該屬性的值為undefined。
(4)函式沒有返回值時,預設返回undefined。
例如:
var color;
alert(message == undefined);//true
這個例子只聲明瞭變數color,但未對其初始化。比較這個變數與undefined字面量,結果表明它們是相等的。這個例子與下面的例子是等價的:
var color = undefined;
alert(color == undefined) ;//true
不過,包含undefined值的變數與尚未定義的變數還是不一樣的:
var color ;//變數宣告之後預設取得undefined值
//未宣告的變數
//var age
alert(color); //"undefined"
alert(age); //產生錯誤
然而,對未初始化的變數執行typeof操作符會返回undefined值,而對未宣告的變數執行typeof操作符同樣也會返回undefined值。
var color;//變數宣告之後預設取得undefined值
//未宣告的變數
//var age
alert(typeof color); //"undefined"
alert(typeof age); // "undefined"
結果表明,對未初始化和未宣告的變數執行 typeof 操作符都返回了 undefined 值;這個結果有其邏輯上的合理性。因為雖然這兩種變數從技術角度看有本質區別,但實際上無論對哪種變數也不可能執行真正的操作。