关系运算符: > < >= <= == != === !===
1. 对于非数值类型的数据,会先转换成数值类型,再进行判断
<script>
let result1 = 1 > false;
console.log("result1:" + result1);
let result2 = 1 > true;
console.log("result2:" + result2);
</script>
控制台结果:
2. 对于关系运算符来说,任何数据和NaN进行比较,返回值都是false
<script>
let result1 = 1 > NaN;
console.log("result1:" + result1);
</script>
控制台结果:
在企业开发中,不要通过==来判断某一个数据是否是NaN 而是要使用isNaN方法
<script>
let result1 = isNaN(NaN);
console.log("result1:" + result1);
</script>
控制台结果:
3. 如果参与比较的都是字符串类型,那么不会转换成数值类型再比较,而是之间比较字符对应的Unicode编码
<script>
let result1 = "a" > "b"; //a:0061 b:0062
console.log("result1:" + result1);
</script>
控制台结果:
注意点:
(1)=== !=== 会同时判断取值和数据类型 == != 只会判断取值
<script>
let result1 = 1 == "1";
let result2 = 1 === "";
console.log("result1:" + result1);
console.log("result2:" + result2);
</script>
控制台结果:
(2)关系运算符的结合性和优先性
关系运算符都是从左至右的运算
<script>
let result1 = 10 <= 25 <= 1; // 10<=25 结果是true true=1 1<=1
console.log("result1:" + result1);
</script>
控制台结果:
关系运算符中 > < >= <= 的优先级高于 == != === !===
<script>
let result1 = 8 === 8 > 6; // 8 > 6 结果为false 8===0 结果为false
console.log("result1:" + result1);
</script>
控制台结果: