在JavaScript中使用哪个等号(== vs ===)进行比较操作好()

在JavaScript中使用哪个等号(== vs ===)进行比较操作好?在Webstorm写项目的时候,使用==总是有警告,将==替换成===是否有性能上的好处?JS的等号比较操作是否有性能上的差异?如果没有类型转换,用===好还是用==好?
全等号===操作符与等号==操作符完全相同,全等号===操作符只是没有进行类型转换,而且必须是类型相同的才能认为是相等,而等号==操作符仅仅比较值是否相等。
在进行必要的类型转换之后,==操作符比较值是否相等,操作符===不会执行类型转换,因此如果两个值的类型不同,那么===会返回false,在性能上,两种同样快,下面是一些例子:

'' == '0'// false 0 == ''// true 0 == '0'// truefalse == 'false'// false false == '0'// truefalse == undefined// false false == null// false null == undefined// true' \t\r\n ' == 0// true

另外,对于引用类型的比较,全等===操作符和等号==操作符保持一致 ,例如两个空数组并不相等,例如下面的例子:
var a = [1,2,3]; var b = [1,2,3]; var c = { x: 1, y: 2 }; var d = { x: 1, y: 2 }; var e = "text"; var f = "te" + "xt"; a == b// false a === b// falsec == d// false c === d// falsee == f// true e === f// true

但是下面对于字符串的比较是特殊情况:
"str" == new String("str")// true "str" === new String("str")// false

【在JavaScript中使用哪个等号(== vs ===)进行比较操作好()】在这里,==操作符检查两个对象的值并返回true,但是===比较发现他们的类型不同返回false,这是不是很怪异?建议不要使用String构造函数来创建String对象。

    推荐阅读