优先级 | 名称 | 符号 | 说明 |
---|---|---|---|
6 | 大于运算符 | > | 双目运算符,具有左结合性 |
6 | 小于运算符 | < | 双目运算符,具有左结合性 |
6 | 大于等于运算符 | >= | 双目运算符,具有左结合性 |
6 | 小于等于运算符 | <= | 双目运算符,具有左结合性 |
7 | 等于运算符 | == | 双目运算符,具有左结合性 |
7 | 不等于运算符 | != | 双目运算符,具有左结合性 |
7 | 不等于运算符 | === | 双目运算符,具有左结合性 |
7 | 不等于运算符 | !== | 双目运算符,具有左结合性 |
关系运算符的注意点
1.对于非数值类型的数据,会先转换成数值类型,再进行判断
// 先将true转成数值1,再与0进行比较
let res = true > 0;
console.log(res);
2.对于关系运算符来说,任何数据和NaN进行比较,返回值都是false
let res = true > NaN;
console.log(res); // false
3.如果参与比较的都是字符串类型,那么不会转换成数值类型再比较,而是直接比较字符对应的Unicode编码
let res = "a" > "b"; // 61 > 62
console.log(res);
4.特殊比较的结果
4.1 在企业开发中千万不要通过==来判断某一个数据是否是NaN,如果想判断某一个数据是否是NaN那么可以通过函数isNaN()来进行判断
let res = null == 0; // false
let res = undefined == 0; // false
let res = null == undefined; // undefined 衍生自 null, 所以返回true
网友评论