我可以通过两种方法检查变量或属性是否存在。

第一个断言没有伪造的值被返回。

1。

var testVar;
if(!testVar){

    //use testVar becuase it exists

}


第二个明确声明这两个条件。

2。

var testVar;

if(testVar !== undefined && testVar !== null){

    //use testVar becuase it exists

}


为了检查对象/字符串/数字/数组是否存在,两者之间是否有区别?

最佳答案

他们是不同的。如果尝试将{}1true"nyan cat" javascript - 这两个JavaScript bool 表达式之间有什么区别?-LMLPHP ...放入testVar,则它将为false返回!testVar

var testVar = {};
if(!testVar){  //false
    //will not be executed, but testVar does exist
}




检查变量是否存在的更好方法:

typeof(randomVar); //undefined
typeof(window);    //object




聚苯乙烯

var testVar;
if(!testVar){
    //...
}


实际上,这并不检查它是否存在。尝试

var testVar = "something";
if(!testVar){              //false
    console.log("Exist.");
}
//nothing happens.

关于javascript - 这两个JavaScript bool 表达式之间有什么区别?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14722794/

10-15 12:43