在if语句中防止错误“未定义”
这个问题在这里已经有了答案:
只有( a && b
) a
和b
的值都是真值, &&
才会返回真。
如果第一个操作数( expression
)评估为false
,则根本不会评估第二个操作数( expression
),因为结果始终为false
更好的做法是使用typeof来评估未定义的变量:
if ( typeof array[index] !== 'undefined' && array[index].id == 1)
{
// code
}
请记住检查字符串'undefined'而不是原始值。
更多信息在MDN
不,如果数组未定义,您将需要一个if语句,如下所示:
if (array && array[index] !== undefined && array[index].id === 1) {
// do things
}
第一个条件是,如果错误将停止对所有其他条件的评估。 唯一的办法就是失败,如果你在严格模式下运行你的代码,并且从未声明var array