为什么会这样';javascript/ecmascript是否只使用严格相等运算符?
为什么javscript不使用严格相等运算符而不是抽象运算符和严格相等运算符 我在IRC上问过,有人评论说微软不想让“==”的功能进入“==”,因为它会破坏网站。不过,没有人能提供任何关于这方面的参考资料。不久之后,另一个人也对微软的指责表示怀疑为什么会这样';javascript/ecmascript是否只使用严格相等运算符?,javascript,ecmascript-5,Javascript,Ecmascript 5,为什么javscript不使用严格相等运算符而不是抽象运算符和严格相等运算符 我在IRC上问过,有人评论说微软不想让“==”的功能进入“==”,因为它会破坏网站。不过,没有人能提供任何关于这方面的参考资料。不久之后,另一个人也对微软的指责表示怀疑 有谁能提供有关引用为何会出现这种情况的信息吗?我相信这是因为他们希望允许某种形式的隐式类型转换。我认为问题真正来自这样一个事实,即这些规则(虽然是出于善意的,而且单独来说也没有太大的危害)在结合起来的时候,或者在帖子抨击“==”中通常提到的“gotch
有谁能提供有关引用为何会出现这种情况的信息吗?我相信这是因为他们希望允许某种形式的隐式类型转换。我认为问题真正来自这样一个事实,即这些规则(虽然是出于善意的,而且单独来说也没有太大的危害)在结合起来的时候,或者在帖子抨击“==”中通常提到的“gotcha”案例中,变得可怕。我个人喜欢有一种选择,尽管不知道它的存在可能是危险的。我相信这是因为他们希望允许某种形式的隐式类型转换。我认为问题真正来自这样一个事实,即这些规则(虽然是出于善意的,而且单独来说也没有太大的危害)在结合起来的时候,或者在帖子抨击“==”中通常提到的“gotcha”案例中,变得可怕。我个人喜欢有一个选项,尽管不知道它的存在可能是危险的。JavaScript使用类型强制在不同类型的值之间自动转换。然而,有时人们想要区分
“1”和1
,或者1
和true
。这就是=
和==
(以及!=
和之间的根本区别)。如果没有这种区别(比如说,==
被删除),人们就必须跳转测试类型和值的相等性(如果=
的功能被删除,与类型无关的值测试也是如此)
我没有听说过微软的故事。我怀疑这是假的,并认为这是某些人的一种倾向,他们认为微软的每一个罪恶都是罪魁祸首。然而,如果微软、Mozilla、谷歌、雅虎、几乎所有有经验的JS程序员都能接受=
和==
的合并,我会非常惊讶。它确实会破坏大量代码,并从语言中删除一个非常有用的工具。JavaScript使用类型强制在不同类型的值之间自动转换。然而,有时人们想要区分“1”和1
,或者1
和true
。这就是=
和==
(以及!=
和之间的根本区别)。如果没有这种区别(比如说,==
被删除),人们就必须跳转测试类型和值的相等性(如果=
的功能被删除,与类型无关的值测试也是如此)
我没有听说过微软的故事。我怀疑这是假的,并认为这是某些人的一种倾向,他们认为微软的每一个罪恶都是罪魁祸首。然而,如果微软、Mozilla、谷歌、雅虎、几乎所有有经验的JS程序员都能接受=
和==
的合并,我会非常惊讶。它确实会破坏大量代码,并从语言中删除一个非常有用的工具。为什么首先要这么做?我个人认为==是有用的。=
便于检查数字与数字字符串,因为。。就是这样。==
的转换与JavaScript的其他弱类型方面相结合,比如if(expr)
的str+number
。为什么首先要这样做?我个人认为==是有用的。=
便于检查数字与数字字符串,因为。。就是这样。=
的转换与JavaScript的其他弱类型方面相结合,比如str+number
的if(expr)
。OT:祝贺你获得了10万(我想这是我的选票xD)@user2864740-我想这确实是你的选票。当我看到你的评论时,我的电话号码是100007+1.隐式类型转换在处理主机对象时非常方便,其中的值可以作为类型号或字符串返回。如果(x='0'| | x==0)
,那么总是在写,这将是一个PITA。唯一真正奇怪的是未定义的
,NaN
和Null
的行为,否则就很简单了。OT:祝贺你获得了10万张选票(我想这是我的选票xD)@user2864740-我想这确实是你的选票。当我看到你的评论时,我的电话号码是100007+1.隐式类型转换在处理主机对象时非常方便,其中的值可以作为类型号或字符串返回。如果(x='0'| | x==0)
,那么总是在写,这将是一个PITA。唯一真正奇怪的是未定义的
、NaN
和Null
的行为,否则就相当简单了。