在if语句中防止错误“未定义”

这个问题在这里已经有了答案:

  • 检测未定义的对象属性40个答案

  • 只有( a && bab的值都是真值, &&才会返回真。

    如果第一个操作数( 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

    链接地址: http://www.djcxy.com/p/22637.html

    上一篇: Prevent error "is undefined" in if statement

    下一篇: How do I check if an element is undefined?