有哪些流行的编程语言从一开始就有 === 和 == 两种运算符(需要程序员自己决定使用哪一个)?JavaScript、PHP、Ruby(可能还有其他语言)现在都有三等号运算符。但是,不清楚这是否是一种有意的设计决策,或者只是偶然发生的事情(也许是因为这些语言最初使用了双等号,但后来发现双等号并不能完全满足人们的需求)。特别是在 JavaScript 中,是否有人记得它最初发布时是否就有三等号运算符?
由于我的记忆不太可靠,所以我不能确定我是否记得其中之一,但由于ECMA友好地保留了ECMA-262规范的所有修订版本,因此可以从中推导出语言何时引入了“严格等于运算符”。
我在ECMA-262第1版和ECMA-262第2版中都没有找到它的任何提及,但在ECMA-262第3版中,我们在第11.9.4章节(第56页)中发现了它的提及。因此自然得出的结论是:JavaScript最初没有 ===
。
由于您提到的其他语言(据我所知)没有经过任何标准化机构的认证,如果这些语言甚至根本没有规范,那么查找旧版本的语言规范可能会更加困难。
但是需要注意的是,在Ruby中, ===
的含义可能与JavaScript或PHP中大不相同(在这两种语言中,它非常相似)。在Ruby中,它通常用于“包含”,即检查某些内容是否存在于其他内容中(例如集合),而在另外两种语言中,它用于进行严格的等价性检查,这意味着在应用操作符之前,两侧的数据类型不会被转换。