javascript - 什么时候在 Javascript 中使用双重相等(松散相等)有意义?

标签 javascript comparison equality

鉴于 type coercionperformance issue作为一个 JS 新手,我一直试图避免使用双重相等,而是选择三重相等。

但是,什么时候使用双重质量才有意义?

最佳答案

简短回答:使用 == 而不是 === 毫无意义。

长答案:虽然这没有任何意义,但在某些情况下您想编写更少的代码,并且您对自己的输入很确定。

如果您真正了解真相,

== 并没有那么糟糕。有一些陷阱,例如 [1] == true[2] == false

请记住 Javascript 的主要目标 was to be an easy language供网页设计师使用,这就是您遇到的所有这些东西背后的原因之一。

举个简单的例子,如Barmar said ,最好的方法是使用它来避免转换数据并检查相等性。这是另一个例子:

const deleteTodos = _ => {
    if (howManyTasksToRemoveInput.value == tasks.length) {
        warningLabel.innerHTML = "You can't remove all the list";
    } else if (howManyTasksToRemoveInput.value > tasks.length) {
        warningLabel.innerHTML = "You DEFINITELY can't remove more tasks than you have";
    } else {
        tasks.splice(0, +howManyTasksToRemoveInput.value);
    }
}

关于javascript - 什么时候在 Javascript 中使用双重相等(松散相等)有意义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50537434/

相关文章:

c# - 这在 C# : if (a==b==c==d) {. 中是否有可能..}

java - 为什么 ("str"+ x == y) 只针对引用类型进行编译?

javascript - 如何在项目中使用多个if条件

javascript - React 组件未接收 props

algorithm - 计算使两个树结构相同的最小操作

python - 我可以使用 « is » 来与静态变量进行比较吗?

javascript - 预先设置 CKEditor 的值

javascript - 哪个事件应该用于按钮?

c# - C# 中的两个枚举何时相等?

java - 什么时候可以使用 "=="运算符?