1、為什麼要取得undefined?
因為undefined在javascript中不是保留字,可以被使用者當做變數來賦值,這樣如果我們後期需要用到undefined來偵測一個變數的話,那麼偵測的值就不準確了;
舉個栗子:
var undefined=10; function sum(a,b){ if(a===undefined||b===undefined){ console.log("参数不正确"); }18101130357 return a+b; }
sum(10,10)->原本正確的參數,控制台輸出的確實"參數錯誤";
這時候,為了相容於所有的瀏覽器,我們就需要取得一個純正的undefinde
2、怎樣取得純正的undefined?
1) void (0):
在ECMAScript 262規範,如下描述:
The void Operator The production UnaryExpression : void UnaryExpression is evaluated as follows: Let expr be the result of evaluating UnaryExpression. Call GetValue(expr). Return undefined.
總之,記住無論void後的表達式是什麼,void運算子都會回傳undefined就好了
2) 傳入一個為賦值的形參
[案例]
function(_undefined){ //函数体中不给_undefined赋值,形参_undefined的值就是undefined,在这个函数用就可以使用_undefined了 }
3)未賦值的變數
舉栗子:var num //道理和2)是一樣的
不要厭煩熟悉的事物,每天都進步一點;不要畏懼陌生的事物,每天都學習一點;
PS:js判斷undefined類型
if (reValue== undefined){ alert("undefined"); } 发现判断不出来,最后查了下资料要用typeof 方法: if (typeof(reValue) == "undefined") { alert("undefined"); }
typeof 回傳的是字串,有六種可能:"number"、"string"、"boolean"、"object"、"function"、"undefined"