JavaScript typeof、null 和 undefined
typeof 運算子
你可以使用 typeof 運算子來偵測變數的資料型態。
typeof(的)運算數未定義,回傳(的)就是"undefined".
運算數為數字 typeof(x) = "number"
字串 typeof(x) = " string"
布林值 typeof(x) = "boolean"
物件,陣列與null typeof(x) = "object"
函數 typeof(x) = "function"
typeof運算子傳回一個用來表示表達式(的)資料型別(的)字串。
可能(的)字串有:"number"、"string"、"boolean"、"object"、"function" 和 "undefined"。
如:
alert(typeof (123));//typeof(123)回傳"number"
alert(typeof ("123"));//typeof("123")回傳"string"
typeof 運算子傳回一個用來表示表達式(的)資料型別(的)字串。
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>php.cn</title> </head> <body> <p id="demo"></p> <script> document.getElementById("demo").innerHTML = typeof "john" + "<br>" + typeof 3.14 + "<br>" + typeof false + "<br>" + typeof [1,2,3,4] + "<br>" + typeof {name:'john', age:34}; </script> </body> </html>
空值(Null)
空值類型表示該變數或內容無任何值。例如一個表單文字輸入框中無任何內容時,我們試圖用 JavaScript 去取得該文字輸入框元素的值時,得到的結果就是 null。
要判斷是否為空值,只要將需要比較的內容與null 比較即可:
if( x == null ) { ... }
鑑於Web 系統運作的特點,很多情況下可以透過給一個變數賦null 值來清除變數的內容而不用刻意去銷毀該變數。
未定義(Undefined)
#變數建立後,未給予該變數賦值,變數即為未定義型別。未定義類型有一個確定的值undefined,因此要判斷一個變數或傳回結果是否為未定義類型,只需將它與undefined 進行比較即可:
if( x == undefined ) { ... }
Undefined 和 Null 的區別
Undefined類型只有一個值,即undefined。當宣告的變數尚未初始化時,變數的預設值為undefined。
Null類型也只有一個值,即null。 null用來表示尚未存在的對象,常用來表示函數企圖傳回一個不存在的物件。
undefined表示一個變數沒有被聲明,或者被聲明了但沒有被賦值(未初始化),一個沒有傳入實參的形參變數的值為undefined,如果一個函數什麼都不回傳,則函數預設回傳undefined;
null是一個表示「沒有值」的值;
Javascript將未賦值的變數預設值設為undefined;
#Javascript從來不會將變數設為null。它是用來讓程式設計師表明某個用var宣告的變數時沒有值的;
undefined不是一個有效的JSON,而null是;undefined的型別(typeof)是undefined;
null的類型(typeof)是object. ;
它們都是基本型別;
他們都是falsy (Boolean(undefined) ->// false, Boolean(null) ->// false);
你可以這樣判斷一個變數是否是undefined。 typeof variable === "undefined";
你可以這樣判斷一個變數是否是null。 variable === null;
雙等號比較時它們相等(null==undefined ->// true),但三等號比較時不相等(null===undefined->/ / false);
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>php.cn</title> </head> <body> <p id="demo"></p> <script> document.getElementById("demo").innerHTML = typeof undefined + "<br>" + typeof null + "<br>" + (null === undefined) + "<br>" + (null == undefined); </script> </body> </html>