javascript - 这两个 JavaScript bool 表达式有什么区别吗?

标签 javascript

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

第一个断言不返回虚假值。

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" nyan! ...进入 testVar,然后为 !testVar 返回 false:

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

enter image description here

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

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/

相关文章:

javascript - API回调

javascript - angularjs 选择选择框中的第一个值

javascript - SHA1 哈希 javascript 实现的一种方式?

javascript - 为什么 request.on() 在 Node.js 中不起作用

javascript - 固定滚动内容

javascript - JQuery 在加载时搞乱了页面

javascript - Zingchart最后一个元素一直在变颜色,与图例不匹配

javascript - 提交表格并在不同的页面上阅读

javascript - 使用 map javascript 从数组的数组中获取值

javascript - 在 nodejs 困惑中返回 next()