1.比较结果为Boolean类型
- true表示正确
- false表示错误
代码:
console.log( 5 > 4 ); // true
console.log( 2 == 1); // false
console.log( 5 != 4 ); // true
2.字符串比较
- 在比较字符串的大小时,js会使用"字典"或"词典"顺序进行判定。
代码:
console.log( 'Z' > 'A' ); // true
console.log( 'James' > 'Kobe' ); // false
console.log( 'James' > 'Jame'); // true
字符串的比较算法:
1.首先比较两个字符串的首位字符大小。
2.如果一方字符较大,则该字符串大于另一个字符串。算法结束
3.如果两个字符串的首位字符相等,则继续取出两个字符串各自的后一位字符进行比较。
4.重复上述步骤进行比较,直到比较完成某个字符串的所有字符为止
5.如果两个字符串的字符同时用完,那么则判定他们相等,否则未结束的字符串更大
3.不同类型间的比较
-
对不同类型的值进行比较时,js会首先将其转为数字(number)再判定大小。
console.log('3' > 1); // true console.log('001' == 1); // true // 对于布尔类型值,true会被转化为1,false转化为0 console.log( true == 1 ); // true console.log( false == 0 ); // true
4.严格相等
==不能区分出0和false==无法区分空字符串和false===在比较时不会做任何的类型转换- 与“不相等”符号
!=类似,“严格不相等”表示为!==
代码:
console.log( 0 == false ); // true
console.log( '' == false ); // true
console.log( 0 === false ); // false
5.对null和undefined进行比较
- 当使用
===比较二者时,为false - 当使用
==比较二者时,为true - 当使用null/undefined 会被转化为数字:
null为0,undefined被转为NaN - 比较
null和0,结果null >= 0为true,null == 0为false,null > 0为false undefined和其他值比较都是false
代码:
console.log( null === undefined ); // false
console.log( null == undefined ); // true
console.log( null > 0 ); // false
console.log( null == 0 ); // false
console.log( null >= 0 ); // true
console.log( undefined > 0 ); // false
console.log( undefined < 0 ); // false
console.log( undefined == 0 ); // false