我在javascript中有一个函数:
function test(a, b, c) {
if(typeof b == "undefined")
//do something
//function code
}
现在我想以这样的方式调用此函数,以便typeof b remains undefined
和a & c containes
值(不重新排序a
,b
& {{1 } ),如
c
答案 0 :(得分:9)
只需传递undefined
(不带引号):
test("value for a", undefined, "value for c");
答案 1 :(得分:4)
任何变量(未定义)。
var undefinedVar;
test("value for a", undefinedVar, "value for b");
答案 2 :(得分:4)
如果您知道要么传递a,b和c,要么传递a和c,我建议采用另一种方法。然后按以下步骤操作
function test(a, b, c) {
if (arguments.length < 3){
c = b;
b = arguments[2]; //undefined
//do want ever you would do if b is undefined
}
}
在这种情况下,如果你错误地为b传递了一个未定义的东西,它更容易被发现,因为它不被解释为“undefined实际上并不意味着未定义但是是一个标志告诉我做一些不同的事情”测试参数长度通常比依赖参数值更稳健,特别是如果该值也可能是错误的结果(即如果值未定义)
答案 3 :(得分:0)