這篇文章主要介紹了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種簡單數據類型(也稱為基本數據類型):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及之 前版本在對正則表達式調用 typeof 操作符時會返回"function",而其他浏覽器在這種情況下會返回 "object"。 從技術角度講,函數在 ECMAScript中是對象,不是一種數據類型。然而,函數也 確實有一些特殊的屬性,因此通過 typeof 操作符來區分函數和其他對象是有必要的。 復制代碼 代碼如下: function test1(){ var message; if(typeof(message)=="undefined") alert("變量值未定義"); else alert(message); } var cc=test1; cc();