代码之家  ›  专栏  ›  技术社区  ›  EhevuTov

为什么类型为“undefined”的数组的未定义值不被我的条件视为真?

  •  0
  • EhevuTov  · 技术社区  · 10 年前

    为什么类型为“undefined”的数组的未定义值不被我的条件视为真?这与OR运算符有关吗。看起来我的程序正在运行内部条件,即使它不应该在内部条件中。

    if(typeof elemData !== 'undefined' || typeof rich[elemData.value] !== 'undefined') {
    
        if(typeof rich[elemData.value]['title'] !== 'undefined') {
            //do something
        }
    
    }
    

    程序返回以下内容:

    > if(typeof rich[elemData.value]['title'] !== 'undefined') {
    > 
    > TypeError: Cannot read property 'title' of undefined
    

    我正在检查 rich[elemData.value] 'undefined' 它说这不是通过我的条件。发生什么事?

    1 回复  |  直到 10 年前
        1
  •  5
  •   Dan D.    10 年前

    当你需要“与”的时候,你正在“或”你的条件。

    if(typeof elemData !== 'undefined' || typeof rich[elemData.value] !== 'undefined') {
    

    应该是:

    if(typeof elemData !== 'undefined' && typeof rich[elemData.value] !== 'undefined') {