从一开始就有意设计了哪些流行的编程语言同时具有===和==(并且要求程序员找出使用哪一种).
Javascript,PHP,ruby(可能还有其他人)今天有一个三等号运算符.但是,目前尚不清楚这是一个刻意的设计决定,还是只是偶然发生(也许是因为语言以双等号开头,但在某些时候,人们发现双等于并不是人们想做的事情. ).
特别是在javascript中,有没有人记得它第一次出现时是否有三等号?
Javascript,PHP,ruby(可能还有其他人)今天有一个三等号运算符.但是,目前尚不清楚这是一个刻意的设计决定,还是只是偶然发生(也许是因为语言以双等号开头,但在某些时候,人们发现双等于并不是人们想做的事情. ).
特别是在javascript中,有没有人记得它第一次出现时是否有三等号?
解决方法
由于我的记忆不是很可靠,我不能说我记得或者,但是因为ECMA已经保留了ECMA-262规范的所有修订版,所以当“严格等于运算符”时,可以推迟阅读它们.被引入语言.
我在ECMA-262 1st Edition和ECMA-262 2nd Edition都找不到它,但在ECMA-262 3rd Edition我们在第11.9.4章(第56页)中找到了它.因此得出的自然结论是:不,当它第一次出现时,JavaScript没有===.
由于你提到的其他语言(据我所知)在任何标准化机构中都没有批准,我想如果有任何语言规范,那么就很难找到语言规范的旧版本.
然而,值得注意的是,Ruby中===的含义可能与JavaScript或PHP(它非常相似)中的含义大不相同.在Ruby中,它通常用于“包含”,即检查某些内容是否存在于其他内容中(例如,一个集合),而在另外两个语言中,它用于严格的相等性检查,这意味着不执行类型转换.在应用之前,运算符的任何一方.