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"