参考
http://www.ecma-international.org/ecma-262/7.0/index.html#sec-abstract-relational-comparisonx < y
首先将 x 和 y 调用 toPrimitive(x ,hint number) toPrimitive(y ,hint number)
保存为 px py
根据上面情况,toPrimitive 会返回对 x 和 y 先调用 valueOf
当返回结果类型是 Object,或者不能调用 valueOf
则调用 toString
当返回结果类型是 Object,或者不能调用 toString
抛出 TypeError
[42].toString() // "42"
['43'].toString() // "43"
根据上面情况,当 px py 都为 string 时
如果 py 是 px 的 prefix 返回 false.
如果 px 是 py 的 prefix 返回 true.
如果都不,则对 px 和 py 进行一个字符一个字符的对比
"42" "43"
第一位 '4' 相同
第二位'2' 和 '3'的 charcode 比较 '2'比'3'的 charcode 小
返回 true
类似的
[42] < ['043'] 的比较,前几步类似,在后面比较时'4' 和 '0'的 charcode 比较 '4'大于 '0'
所以结果是 false