JavaScript typeof、null 和 undefined
typeof 運(yùn)算子
你可以使用 typeof 運(yùn)算子來(lái)偵測(cè)變數(shù)的資料型態(tài)。
typeof(的)運(yùn)算數(shù)未定義,回傳(的)就是"undefined".?
運(yùn)算數(shù)為數(shù)字?typeof(x) = "number"?
字串?typeof(x) = " string"?
布林值?typeof(x) = "boolean"?
物件,陣列與null?typeof(x) = "object"?
函數(shù)?typeof(x) = "function"
typeof運(yùn)算子傳回一個(gè)用來(lái)表示表達(dá)式(的)資料型別(的)字串。?
可能(的)字串有:"number"、"string"、"boolean"、"object"、"function" 和 "undefined"。
如:?
alert(typeof?(123));//typeof(123)回傳"number"?
alert(typeof?("123"));//typeof("123")回傳"string"
typeof?運(yùn)算子傳回一個(gè)用來(lái)表示表達(dá)式(的)資料型別(的)字串。?
<!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)
空值類型表示該變數(shù)或內(nèi)容無(wú)任何值。例如一個(gè)表單文字輸入框中無(wú)任何內(nèi)容時(shí),我們?cè)噲D用 JavaScript 去取得該文字輸入框元素的值時(shí),得到的結(jié)果就是 null。
要判斷是否為空值,只要將需要比較的內(nèi)容與null 比較即可:
if( x == null ) { ... }
鑑於Web 系統(tǒng)運(yùn)作的特點(diǎn),很多情況下可以透過(guò)給一個(gè)變數(shù)賦null 值來(lái)清除變數(shù)的內(nèi)容而不用刻意去銷毀該變數(shù)。
未定義(Undefined)
#變數(shù)建立後,未給予該變數(shù)賦值,變數(shù)即為未定義型別。未定義類型有一個(gè)確定的值undefined,因此要判斷一個(gè)變數(shù)或傳回結(jié)果是否為未定義類型,只需將它與undefined 進(jìn)行比較即可:
if( x == undefined ) { ... }
Undefined 和 Null 的區(qū)別
Undefined類型只有一個(gè)值,即undefined。當(dāng)宣告的變數(shù)尚未初始化時(shí),變數(shù)的預(yù)設(shè)值為undefined。
Null類型也只有一個(gè)值,即null。 null用來(lái)表示尚未存在的對(duì)象,常用來(lái)表示函數(shù)企圖傳回一個(gè)不存在的物件。
undefined表示一個(gè)變數(shù)沒(méi)有被聲明,或者被聲明了但沒(méi)有被賦值(未初始化),一個(gè)沒(méi)有傳入實(shí)參的形參變數(shù)的值為undefined,如果一個(gè)函數(shù)什麼都不回傳,則函數(shù)預(yù)設(shè)回傳undefined;
null是一個(gè)表示「沒(méi)有值」的值;
Javascript將未賦值的變數(shù)預(yù)設(shè)值設(shè)為undefined;
#Javascript從來(lái)不會(huì)將變數(shù)設(shè)為null。它是用來(lái)讓程式設(shè)計(jì)師表明某個(gè)用var宣告的變數(shù)時(shí)沒(méi)有值的;
undefined不是一個(gè)有效的JSON,而null是;undefined的型別(typeof)是undefined;
null的類型(typeof)是object. ;
它們都是基本型別;
他們都是falsy (Boolean(undefined)?->// false,?Boolean(null) ->// false);
你可以這樣判斷一個(gè)變數(shù)是否是undefined。 typeof variable === "undefined";
你可以這樣判斷一個(gè)變數(shù)是否是null。 variable === null;
雙等號(hào)比較時(shí)它們相等(null==undefined?->// true),但三等號(hào)比較時(shí)不相等(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>