2012-01-12 47 views
-4

有一些例子:如何檢查函數的未定義參數? (在JavaScript)

a = ''; //string 
b = 0; //number 0 
b1 = 0xf; //number 15 
c = (function(){}) //function function(){} 
d = []; //object 
e = {}; //object [object Object] 
f = void(0); //undefined undefined 

但是當我試圖通過未定義的變量trougth功能類似:

typeof qwerty; //undefined 
function at(a){return (typeof a)+' '+a;} 
at(qwerty); // ???? 

..i`v得到一個錯誤「未捕獲的ReferenceError:QWERTY沒有定義」。 我如何(是最短的方式存在)創造isDefined功能(A,B)或其他伎倆,以減少表達?:

c=(typeof a!='undefined'&&a||b) 

澄清:如果一個定義 - c等於一,overwise - B ,如 「C = @?A:b」 在PHP

編輯:

function ud(_a){return typeof window[_a]==='undefined'} 

a=undefined; b=3; 
alert((ud('a')?4:a)+(ud('b')?5:b));​ 
+4

對不起,但你的問題是什麼? – Connum 2012-01-12 11:58:01

+2

[標籤:家庭作業]? – Matt 2012-01-12 11:58:32

+0

幫你一個忙,在google.com搜索'undefined value in javascript' - 用一點閱讀和嘗試(Tryit編輯器!)你會發現你自己的正確答案 – 2012-01-12 14:06:09

回答

1
function def(a, b) { 
    var undef; 

    return a === undef ? b : a; 
} 

然後:

var c = def(a, b); 
// if a is defined - c equals a, otherwise b 
5
function isDefined(variable, dflt) { 
    return typeof variable === "undefined" ? dflt : variable; 
} 

var c = isDefined(a, b); 
+0

Uncaught ReferenceError:a is not defined(Google Chrome 16 ...) – iegik 2012-01-12 20:04:44

+0

這是一個如何調用函數的問題,您需要提供一些示例代碼+所有這些例子都假設測試變量已被聲明,是不是這種情況? – 2012-01-13 08:58:52

+0

http://jsfiddle.net/iegik/grK5X 似乎是參數必須在通過函數之前聲明,但它可以是未定義的。 – iegik 2012-01-13 19:38:10