【发布时间】:2018-09-09 22:29:50
【问题描述】:
是否有可能有一个函数来检查提供给它的任何参数是否未定义?我正在尝试以下方法
function isDefined() {
for (var i = 0; i < arguments.length; i++)
if (typeof (arguments[i]) === "undefined") return false;
return true;
}
但是,如果我传递一个未定义的参数,它会给我一个错误:
Uncaught ReferenceError: b is not defined
更新
示例用法:
let a = 5;
let c = "hello";
isDefined(a, b, c); // gives false
isDefined(a, c); // gives true
【问题讨论】:
-
参数在函数被调用之前被评估。该函数无法及时返回并防止出现此错误。
-
做 if(!arguments[i]) return false
-
@ManosKounelakis 这有什么帮助?它只是将参数转换为布尔值
-
你可以这样写
let isDefined = function(){ return [...arguments].some(arg=>!arg)} -
此错误仅在函数未声明时发生。如果你声明了变量,你不应该得到一个错误。
标签: javascript function undefined-reference