为什么typeof数组的未定义值返回为"undefined"不被我的条件视为真?

Ehe*_*Tov 0 javascript arrays typeof conditional-statements node.js

为什么typeof数组的未定义值返回为"undefined"不被我的条件视为真?是与OR运算符有什么关系.看起来我的程序正在运行内部条件,即使它不应该在内部条件中.

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

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

}
Run Code Online (Sandbox Code Playgroud)

程序返回以下内容:

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

我正在检查是否rich[elemData.value]是,'undefined'并且它说它不是通过我的条件.这是怎么回事?

Dan*_* D. 5

当你需要AND它们时,你正在ORing你的条件.

if(typeof elemData !== 'undefined' || typeof rich[elemData.value] !== 'undefined') {
Run Code Online (Sandbox Code Playgroud)

应该:

if(typeof elemData !== 'undefined' && typeof rich[elemData.value] !== 'undefined') {
Run Code Online (Sandbox Code Playgroud)