這篇文章主要介紹了js判斷undefined類型的實現方法,需要的朋友可以參考下
代碼如下:if (reValue== undefined){ alert("undefined"); } 發現判斷不出來,最後查了下資料要用typeof方法: if (typeof(reValue) == "undefined") { alert("undefined"); } typeof 返回的是字串,有六種可能:"number"、"string"、"boolean"、"object"、"function"、"undefined" 3.4 資料類型 ECMAScript中有 5種單一資料型別(也稱為基礎資料型別 (Elementary Data Type)):Undefined、Null、Boolean、Number 和String。還有 1種複雜資料類型——Object,Object 本質上是由一組無序的名值對組成的。ECMAScript 不支援任何建立自訂類型的機制,而所有值終都將是上述 6種資料類型之一。乍一看,好像只有 6 種資料類型不足以表示所有資料;但是,由於 ECMAScript資料類型具有動態性,因此的確沒有再定義 其他資料類型的必要了。 3.4.1 typeof操作符 鑒於 ECMAScript 是鬆散類型的,因此需要有一種手段來檢測給定變數的資料類型——typeof 就 是負責提供這方面資訊的操作符。對一個值使用 typeof 操作符可能返回下列某個字串: "undefined"——如果這個值未定義; "boolean"——如果這個值是布爾值; "string"——如果這個值是字串; 24 第 3章 基本概念 "number"——如果這個值是數值; "object"——如果這個值是對象或 null; "function"——如果這個值是函數。 下面是幾個使用 typeof 操作符的例子: var message = "some string"; alert(typeof message); // "string" alert(typeof(message)); // "string" alert(typeof 95); // "number" TypeofExample01.htm 這幾個例子說明,typeof 操作符的運算元可以是變數(message),也可以是數值字面量。注意, typeof 是一個操作符而不是函數,因此例子中的圓括弧儘管可以使用,但不是必需的。 有些時候,typeof 操作符會返回一些令人迷惑但技術上卻正確的值。比如,調用 typeof null 會返回"object",因為特殊值 null 被認為是一個空的對象引用。Safari 5及之前版本、Chrome 7及之 前版本在對Regex調用 typeof 操作符時會返回"function",而其他瀏覽器在這種情況下會返回 "object"。 從技術角度講,函數在 ECMAScript中是對象,不是一種資料類型。然而,函數也 確實有一些特殊的屬性,因此通過 typeof 操作符來區分函數和其他對象是有必要的。 複製代碼 代碼如下:function test1(){ var message; if(typeof(message)=="undefined") alert("變數值未定義"); else alert(message); } var cc=test1; cc();