总是有三等于的语言

mat*_*tsh 7 javascript ruby language-design

从一开始就有意设计了哪些流行的编程语言同时具有===和==(并且要求程序员找出使用哪一种).
Javascript,PHP,ruby(可能还有其他人)今天有一个三等号运算符.但是,目前尚不清楚这是一个刻意的设计决定,还是只是偶然发生(也许是因为语言以双等号开头,但在某些时候,人们发现双等于并不是人们想做的事情. ).
特别是在javascript中,有没有人记得它第一次出现时是否有三等号?

Asb*_*erg 11

由于我的记忆不是很可靠,我不能说我记得或者,但是因为ECMA已经保留了ECMA-262规范的所有修订版,所以当"严格等于运算符"时,可以推迟阅读它们.被引入语言.

我无法在ECMA-262第1版ECMA-262第2版中找到任何提及,但在ECMA-262第3版中,我们在第11.9.4章(第56页)中找到了它.因此,从中得出的自然结论是:不,JavaScript ===首次出现时没有.

由于你提到的其他语言(据我所知)在任何标准化机构中都没有批准,我想如果有任何语言规范,那么就很难找到语言规范的旧版本.

然而,值得注意的是,===Ruby 中的含义可能与JavaScript或PHP(它非常相似)的含义大不相同.在Ruby中,它通常用于"包含",即检查某些内容是否存在于其他内容中(例如,一个集合),而在另外两个语言中,它用于严格的相等性检查,这意味着不执行类型转换.在应用之前,操作员的任何一方.