如何检查函数调用是否有参数

How to check if function call has argument

本文关键字:函数调用 是否 参数 检查 何检查      更新时间:2023-09-26

当前ny变量显示为定义的,因为它是全局的,但当我调用测试函数时,我不想只检查ny参数是否已设置。我不希望(ny)的类型考虑全局ny变量。

ny = 1;
var test = function(ny){
    console.log(typeof ny ==='undefined');
}
test();

我不希望(ny)的类型考虑全局ny变量。

不会的。通过使用ny作为参数标识符,您在外部作用域中遮蔽了ny。您的示例将记录true。据我所知,这就是你想要的。

旁注:typeof是运算符,而不是函数。你不需要括号:

console.log(typeof ny === "undefined");

如果要检查参数是否已传递到函数中,只需检查arguments对象的长度即可。

考虑以下功能:

var test = function (ny) {
    console.log(arguments.length > 0);
};

test()将记录false

test(ny)将记录true

我知道的唯一方法:

  1. 不要制造全局变量
  2. 不要对不同作用域的变量使用相同的变量名

JavaScript将逐步检查范围,向外扩展。如果你有一个全局变量的名字,JavaScript最终会找到它并使用它。你不能让JavaScript忽略一个变量,不管它的范围如何。

相关文章: