JavaScript If/Else 条件和比较 - 差异

标签 javascript casting comparison boolean conditional-statements

好的,这是我的简短问题:

我知道 ===!== 运算符会比较类型,然后比较值,而 ==!= 将转换类型,然后只比较值。

if(myVar)if(!myVar) 呢?

if(myVar == true)if(myVar == false) 的行为有什么不同吗?

最佳答案

是的,有区别。例如:

if('true' == true) {
    alert("This doesn't happen");
}

if('true') {
    alert("But this does happen.");
}

原因是什么?它们都被转换为 number 以进行比较。 'true' 转换为 NaNtrue 转换为 1

避免这种愚蠢行为,永远不要写 == true== false

关于JavaScript If/Else 条件和比较 - 差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11125154/

相关文章:

javascript - onKeyDown 事件未触发

javascript - 创建带有单独单元格图标的 jQuery 表

C++ 安全高效地将 std::weak_ordering 转换为 int

python - 递增的 float 彼此不相等

.net 数据库模式比较 api

c# - 为什么使用泛型的 "Equals"方法解析与显式调用不同

javascript - 使用 "var that = this"了解 Javascript 作用域

javascript - 如何将数据从 csv 文件或 Excel 文件导出到 JavaScript 对象?

.net - 确保数字在 .NET 中正确转换

c++ - C++ 中的转换错误