How to handle 'undefined' in javascript
本问题已经有最佳答案,请猛点这里访问。
Possible Duplicate:
Detecting an undefined object property in JavaScript
从下面的javascript示例
1 2 3 4 5 6 7 | try { if(jsVar) { proceed(); } }catch(e){ alert(e); } |
这个jsvar在另一个js fine中声明并用首字母签名。
问题是,当在执行另一个文件(声明和启动的文件)之前执行此代码时,代码会抛出未定义的错误。这就是为什么它被"尝试和捕获"包围的原因。
处理这个未定义错误的最佳方法是什么?
你可以用
1 2 3 | if (typeof(jsVar) == 'undefined') { ... } |
与JavaScript的情况一样,有多种方法可以做到这一点:
1 2 3 | typeof foo !== 'undefined' window.foo !== undefined 'foo' in window |
前两个变量应该是等效的(只要
在javascript中,以下值将导致if条件失败,并且不会执行其语句:空、未定义、假、NaN、数字0和空字符串""。
假设变量jsvar是一个布尔值,并且我们希望在jsvar为true时调用proceed()方法,我们可以执行以下检查。
1 2 | if (jsVar && jsVar == true) proceed(); |
上面的代码片段首先检查JSvar是否已定义,然后检查其值是否为真。只有当两个条件都满足时,才会满足if条件。
如果jsvar不是布尔值,那么我们可以在上面的代码中用适当的签入代替jsvar==true。