如何检查函数的未定义参数? (在JavaScript中)

时间:2012-01-12 11:56:53

标签: javascript function undefined arguments

有一些例子:

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); // ????

..我遇到错误“Uncaught ReferenceError:qwerty未定义”。 我怎样才能(是否存在最短路径)创建函数isDefined(a,b)或另一种减少该表达式的技巧?:

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

澄清:如果a被定义--c等于a,overwise -b,就像php中的“c = @ a?:b”

修改

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

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

2 个答案:

答案 0 :(得分:5)

function isDefined(variable, dflt) {
    return typeof variable === "undefined" ? dflt : variable;
}

var c = isDefined(a, b);

答案 1 :(得分: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