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>


#
繼續學習
||
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>php中文网(php.cn)</title> <script type="text/javascript"> function aFunction(iNum1) { if (typeof iNum1 == "number" ){ alert("number"); } if ( typeof iNum1 == "string") { alert("string"); } } aFunction("a"); aFunction(1); </script> </head> <body> </body> </html>