如何在JavaScript中处理“未定义”
可能重复:
在JavaScript中检测未定义的对象属性
从下面的JavaScript示例
try { if(jsVar) { proceed(); } }catch(e){ alert(e); }
这jsVar被宣布和草签在另一个js的罚款。
问题是当代码在另一个文件(声明和启动的地方)执行之前执行时,代码会抛出未定义的错误。 这就是为什么它被尝试和捕捉包围。
最好的办法来处理这个未定义的错误比尝试抓住?
你可以检查事实
if (typeof(jsVar) == 'undefined') { ... }
像JavaScript一样,有多种方法可以做到这一点:
typeof foo !== 'undefined' window.foo !== undefined 'foo' in window
前两个应该是等价的(只要foo
不受局部variables的影响),而最后一个将返回true
如果全局variables被定义,但没有初始化(或显式设置为undefined
)。
在JavaScript中,以下值将导致if条件失败并且不执行其语句:null,undefined,false,NaN,数字0和空string''。
假设variablesjsVar是一个布尔值,并且当jsVar为true时我们想调用proceed()方法,我们可以做下面的检查。
if (jsVar && jsVar == true) proceed();
上面的代码片段首先检查jsVar已经定义,然后检查它的值是否为真。 if条件只有满足两个条件才能满足。
如果jsVar不是布尔值,那么我们可以在上面的代码中用合适的检查代替jsVar == true。