Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 始终具有三重相等的语言_Javascript_Ruby_Language Design - Fatal编程技术网

Javascript 始终具有三重相等的语言

Javascript 始终具有三重相等的语言,javascript,ruby,language-design,Javascript,Ruby,Language Design,哪些流行的编程语言从一开始就被有意设计为同时具有===和==(并要求程序员确定使用哪种语言)。 Javascript、PHP、ruby(可能还有其他)现在有一个三重等于运算符。但是,目前还不清楚这是否是一个故意的设计决定,或者只是偶然发生的(可能是因为该语言以双等位开始,但在某个点上,人们发现双等位并不完全符合人们的要求)。 特别是在javascript中,有人记得它第一次出现时是否有三重相等吗?由于我的内存不太可靠,我不能说我记得或,但由于ECMA善意地保留了ECMA-262规范的所有修订,所

哪些流行的编程语言从一开始就被有意设计为同时具有===和==(并要求程序员确定使用哪种语言)。
Javascript、PHP、ruby(可能还有其他)现在有一个三重等于运算符。但是,目前还不清楚这是否是一个故意的设计决定,或者只是偶然发生的(可能是因为该语言以双等位开始,但在某个点上,人们发现双等位并不完全符合人们的要求)。

特别是在javascript中,有人记得它第一次出现时是否有三重相等吗?

由于我的内存不太可靠,我不能说我记得或,但由于ECMA善意地保留了ECMA-262规范的所有修订,所以当“严格相等运算符”出现时,可能会推迟阅读它们被引入到语言中

我在NORE和nor中都找不到任何提及,但我们在第11.9.4章(第56页)中找到了提及。由此得出的自然结论是:不,JavaScript最初出现时没有
==

因为你提到的其他语言(据我所知)没有得到任何标准化机构的批准,我想如果有任何语言规范的话,很难找到语言规范的旧版本


然而,需要注意的是,Ruby中
==
的含义可能与JavaScript或PHP中的含义大不相同(两者非常相似)。在Ruby中,它通常用于“包容”,即检查其他东西(例如,一个集合)中是否存在某些东西,而在其他两种语言中,它用于严格的相等性检查,这意味着在应用运算符之前,不会在运算符的任一侧执行类型转换。

@GregHewgill不符合ECMA-262,从我读到的。你的推荐信是什么?我的记忆显然是错误的,谢谢你的引用。