var a = [ 42 ]; var b = [ "43" ]; a < b; // true b < a; // false
var a = [ "42" ]; var b = [ "043" ]; a < b; // false
var a = [ 4, 2 ]; var b = [ 0, 4, 3 ]; a < b; // false
var a = { b: 42 }; var b = { b: 43 }; a < b; // false a == b; // false a > b; // false a <= b; // true a >= b; // true
如果a < b和a == b结果为false,为什么a <= b和a >= b的结果会是true呢? 因为根据规范a <= b被处理为b < a,然后将结果反转。因为b < a的结果是false,所以a <= b的结果是true。
var a = [ 42 ]; var b = "043"; a < b; // false -- 字符串比较! Number( a ) < Number( b ); // true -- 数字比较!
你不知道的 JavaScript 系列中( 30 ) - 比较中的强制转换类型
原文:https://www.cnblogs.com/wzndkj/p/14052400.html