({} + 'y' > {} + 'x');
1.我个人的理解应该是{}先toPrimitive(Number)调用valueOf()然后再调用toString()方法变成[object Object]。
2.所以就变成了'[object Object]y' > '[object Object]x'
3.之后我看了ecmascript规范中的11.8.3抽象关系比较算法 就不懂了为什么会是true。
否则,px 和 py 都是 Strings 类型
(1).如果 py 是 px 的一个前缀,返回 false。(当字符串 q 的值可以是字符串 p 和一个其他的字符串 r 拼接而成时,字符串 p 就是 q 的前缀。注意:任何字符串都是自己的前缀,因为 r 可能是空字符串。)
(2).如果px 是 py 的前缀,返回 true。
(3).让 k 成为最小的非负整数,能使得在 px 字符串中位置 k 的字符与字符串py字符串中位置 k 的字符不相同。(这里必须有一个 k,使得互相都不是对方的前缀)
(4).让 m 成为字符串 px 中位置 k 的字符的编码单元值。
(5).让 n 成为字符串 py 中位置 k 的字符的编码单元值。
(6).如果 n<m,返回 true。否则,返回 false。
偶然的你
不负相思意
慕桂英3389331
相关分类