我一直在学习Python、Ruby和Javascript中的可变性。我的假设是,当在两个数组或两个具有相同值的对象之间使用比较运算符时,Ruby和Python的行为将类似于Javascript。为什么Python和Ruby在比较相同值的数组时返回true,而Javascript却没有?
例如:
Python:
>>> x = [1,2,3,4,5]
>>> y = [1,2,3,4,5]
>>> x == y
True
Ruby:
> x = [1,2,3]
> y = [1,2,3]
> x == y
=> true
Javascript:
> x = [1,2,3]
> y = [1,2,3]
> x === y
false
为什么Python和Ruby在比较相同值的数组时返回true,而Javascript却没有?
因为它们是三种完全不同的编程语言,没有理由期望它们的行为相同。
ECMAScript按照ECMAScript语言规范的要求执行。Ruby按照Ruby语言规范的规定执行。Python按照Python语言规范的指示执行。