如何检查函数调用是否有参数
How to check if function call has argument
当前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
。
我知道的唯一方法:
- 不要制造全局变量
- 不要对不同作用域的变量使用相同的变量名
JavaScript将逐步检查范围,向外扩展。如果你有一个全局变量的名字,JavaScript最终会找到它并使用它。你不能让JavaScript忽略一个变量,不管它的范围如何。
相关文章:
- 是否可以将一个函数输入连接到另一个函数调用的文本
- 异步函数调用是否可以在两个同步语句之间完成
- 如何验证for循环是否完成了node js中的所有迭代,循环是否包含带回调的函数调用
- 是否可以存储javascript函数调用并在设置某些变量时执行它
- 除了对每个元素进行函数调用之外,是否有一种更通用的方法可以在 HTML 元素上调用 JS 函数
- 如果我有一个变量,分配给函数调用的值,如果函数调用的参数更改,是否可以更新该变量
- 确定 .always 函数中的 AJAX 调用是否失败
- 高级Javascript:检测当前函数是否由构造函数调用
- 是否可以通过函数调用重绘 DIV 的内容
- Jquery:一个jquery对象(方法链)上可以调用的函数数量是否有限制
- 是否可以在Javascript/Coffeescript中的属性访问期间自动调用函数调用
- 检查函数调用是否具有正确的参数类型
- Node sequelize回调承诺期望一个函数,是否有一种方法可以通过函数调用删除已声明的函数
- 如果对函数调用了.bind(),是否无法判断该函数是否为生成器函数
- 当调用返回相同对象的函数时,无论是否作为构造函数调用,我都应该使用“new”吗
- 检查构造函数调用是否来自扩展类
- AngularJs 摘要周期是否在任何函数调用后触发
- 是否有嵌套require函数调用的原因
- 如何检查函数调用是否有参数
- 检查函数调用是否为变量定义