lue*_*ken 8 javascript undefined
我希望保护我的函数不受null-ish值的影响,只有在存在"已定义"值时才会继续.
之后找 周围的解决方案,建议增加一倍等于未定义:if (something == undefined).此解决方案的问题是您可以声明未定义的变量.
所以我目前的解决方案是检查null if(something == null),这意味着检查undefined.如果我想捕捉附加值假值,我检查if(something).
请参阅此处的测试:http://jsfiddle.net/AV47T/2/
我现在错过了什么吗?
马蒂亚斯
标准的JS守卫是:
if (!x) {
// throw error
}
Run Code Online (Sandbox Code Playgroud)
!x会抓住任何undefined,null,false,0,或空字符串.
如果要检查值是否有效,则可以执行以下操作:
if (Boolean(x)) {
// great success
}
Run Code Online (Sandbox Code Playgroud)
在这一块,如果x是任何执行该块,但 undefined,null,false,0,或空字符串.
-tjw
我知道防止真正未定义的变量(意味着具有从未在任何地方定义的变量名称)的唯一安全方法是检查typeof:
if (typeof _someUndefinedVarName == "undefined") {
alert("undefined");
return;
}
Run Code Online (Sandbox Code Playgroud)
其他任何事情(包括if (!_someUndefinedVarName))都会失败.
基本示例:http://jsfiddle.net/yahavbr/Cg23P/
删除第一个块,你会得到:
_someUndefinedVarName未定义