总是有三等于的语言

时间:2011-10-18 06:58:31

标签: javascript ruby language-design

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

1 个答案:

答案 0 :(得分:10)

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

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

由于您提到的其他语言(据我所知)并未在任何标准化机构中批准,我认为如果有语言规范这样的话,就很难找到该语言规范的旧版本。一点都不。

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