通过关系运算符可以比较两个值之间的大小关系,如果关系成立返回true,不成立则返回false。
>大于
判断符号左侧的值是否大于符号右侧的值,如果关系成立返回true,不成立返回false。
举例:
console.log(5 < 10); // 输出结果为true
console.log(5 > 10); // 输出结果为false
console.log(5 > 5); // 输出结果为false
>=大于等于
判断符号左侧的值是否大于等于符号右侧的值。
举例:
console.log(5 >= 5); // 输出结果为true
console.log(6 >= 10); // 输出结果为false
<小于
判断符号左侧的值是否小于符号右侧的值。
举例:
console.log(4 < 5); //输出结果为true
<=小于等于
判断符号左侧的值是否小于等于符号右侧的值。
举例:
console.log(5 <= 5); // 输出结果为true
非数值的情况下:
对于非数值进行比较时,会先将其转换为数值,然后再进行比较。
任何值和NaN作比较结果都是false
// true转换为数值是1 false转换为数值是0
console.log(1 > true); // 结果为false
console.log(1 >= true); // 结果为true
console.log(1 > '0'); // 结果为true
console.log(1 > null); // 结果为true
console.log(1 > 'hello'); // 结果为false 任何值和NaN作比较结果都是false
如果符号两侧都是字符串,不会将其转换为数值进行比较,而会分别比较字符串中字符的Unicode编码。
注意:所以在比较两个字符串型的数字时,一定要先转型。
例如:
console.log('134545353' > +'5'); // 这样结果才返回true 不转型则返回false
而在比较字符编码时,是一位一位进行比较的,如果符号两侧第一位一样,则比较下一位,所以借此可以用来对英文进行排序,而比较中文是没有意义的。
(1的编码小于5的编码)
console.log('1' < '5'); // 结果为true
console.log('11' < '5'); // 结果也为true
console.log('be' > 'b'); // 结果为true 先比较第一位b的字符编码是一样的,再比较第二位,由于be有e,而b只有一位,所以be>b
console.log('be' < 'b'); // 结果为false