有一些例子:
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));
答案 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