使用未定义的值调用 javascript 函数

Calling javascript function with undefined value

本文关键字:javascript 函数 值调用 未定义      更新时间:2023-09-26

>我在javascript中有一个函数:

function test(a, b, c) {
    if(typeof b == "undefined")
      //do something 
    //function code
}

现在我想以这样的方式调用这个函数,以便typeof b remains undefineda & c containes值(无需重新排序ab & c ),例如

test("value for a",  what i can pass here so that b type will be undefined, "value for c")

只需传递undefined(不带引号):

test("value for a", undefined, "value for c");

任何变量(未定义)。

var undefinedVar;
test("value for a", undefinedVar, "value for b");

如果您知道您要么传递 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 传递了一个未定义,它更容易被发现,因为它没有被解释为"未定义实际上并不意味着未定义,而是一个标志告诉我做不同的事情",测试参数长度通常比依赖参数的值更健壮,特别是如果该值也可能是错误的结果(即。 如果值未定义)

您可以使用 void 运算符:

test('value for a', void 0, 'value for c');

void运算符计算expression并返回undefined