关系运算符
关系运算符用于比较两个值之间的关系,并根据比较结果返回布尔值(true或false)
源码
relation-operator
<script>
//关系运算符 > < >= <= == != === !==
//根据运算符两边值的关系返回true正确或false错误
console.log(1>2); //false
console.log(2<1); //false
console.log(3>=3); //true
var a = 4 ;
console.log(a>=5); //false
console.log(a==4); //true
console.log(a!=4); //false
console.log(a=="4"); //true
// == 相等,模糊匹配类型,匹配数值
// === 全等,进行数值判断时,精确匹配类型
console.log(a==='4'); //false
console.log(a!=="4"); //true
</script>
控制台结果
关系运算符实例
console.log(1>2); //false
:这是一个比较操作,检查数字1是否大于数字2。由于1小于2,所以结果是false。
console.log(2<1); //false
:这里比较的是数字2是否小于数字1。因为2大于1,所以结果是false。
console.log(3>=3); //true
:这个操作检查数字3是否大于或等于它自己。因为3等于3,所以结果是true。
var a = 4 ;
:这行代码声明了一个变量a
并将其初始化为数字4。
console.log(a>=5); //false
:检查变量a
(值为4)是否大于或等于5。因为4小于5,所以结果是false。
console.log(a==4); //true
:这里使用等号(==)检查变量a
的值是否等于数字4。由于它们相等,结果是true。
console.log(a!=4); //false
:使用不等于(!=)检查a
的值是否不等于4。因为它们相等,所以结果是false。
console.log(a=="4"); //true
:这个操作使用等号(==)进行类型不安全的比较,检查变量a
的值是否等于字符串"4"。在JavaScript中,当使用==进行比较时,会进行类型转换,数字4会被转换成字符串"4",因此比较结果是true。
console.log(a==='4'); //false
:使用严格等于(===)进行比较,检查a
的值是否严格等于字符串"4"。由于严格等于不会进行类型转换,而a
是一个数字,所以结果是false。
console.log(a!=="4"); //true
:使用严格不等于(!==)检查a
的值是否严格不等于字符串"4"。由于类型不同,所以结果是true。
逻辑运算符
关系运算符用于比较两个表达式之间的关系,并根据优先级进行结果的比较,从而返回布尔值(true或false)
源码
logic-operator
<script>
var a = 5 ;
// &&:并且,运算符两边条件均满足返回true反之则为false
console.log(a>3 && a<=5); //true
console.log(a>3 && a==10); //false
// ||:或者,运算符两边条件只需要满足一个就返回true,都不满足返回false
console.log(a>10 || a===5); //true
console.log(a<1 || a>10); //false
//逻辑与&&,逻辑或||,连用
console.log(a==5 || a > 10 && a < 10); //true
// 将此表达式分为两个部分【a==5】【a>10 && a<10】两个部分只需一个表达式成立,即返回true
//逻辑非!:对表达式结果进行取反
console.log(!a==5);//原结果为true加上逻辑非为false
</script>
控制台结果
逻辑运算符实例
console.log(a>3 && a<=5); //true
这个表达式使用了逻辑与&&
。变量a
的值是5,它大于3且小于等于5,所以两个条件都满足,返回true
。
console.log(a>3 && a==10); //false
同样使用逻辑与&&
。虽然a
大于3,但a
不等于10,因此至少有一个条件不满足,返回false
。
console.log(a>10 || a===5); //true
这个表达式使用了逻辑或||
。变量a
的值是5,它不大于10,但等于5,因此至少有一个条件满足,返回true
。
console.log(a<1 || a>10); //false
使用逻辑或||
。变量a
的值是5,既不小于1也不大于10,所以两个条件都不满足,返回false
。
console.log(a==5 || a > 10 && a < 10); //true
这个表达式结合了逻辑或||
和逻辑与&&
。由于a
等于5,第一个条件a==5
已经满足,所以整个表达式返回true
。即使第二个条件a > 10 && a < 10
是矛盾的(不可能同时大于10且小于10),但因为第一个条件已经满足,所以整个表达式的结果为true
。
console.log(!a==5); //原结果为true加上逻辑非为false
这个表达式使用了逻辑非!
。首先,a
的值是5,所以a
是一个真值。逻辑非!
将a
的真值取反,变为false
。然后,false
被隐式地转换为数字0,接着与数字5进行比较。由于0不等于5,所以表达式的结果是false
。
JS运算符运算顺序
JavaScript中,判断运算顺序主要依赖于以下几个方面:
运算符优先级:JavaScript有一套固定的运算符优先级规则,决定了在没有括号的情况下,哪些运算会先执行。例如,乘法和除法的优先级高于加法和减法。
括号:括号内的运算总是最先执行。使用括号可以改变默认的运算顺序,确保先计算你希望优先计算的部分。
逻辑运算符:逻辑运算符
&&
(逻辑与) 和||
(逻辑或) 也有不同的优先级。&&
的优先级高于||
。组合运算符:JavaScript提供了组合赋值运算符,如
+=
、-=
等,这些运算符的优先级低于单独的加减乘除。
JavaScript中运算符优先级,从高到低排列:
* / %
乘法、除法和取余+ -
加法和减法<< >> >>>
位移运算符< <= > >=
比较运算符== != === !==
相等和全等运算符- !逻辑或
&&
逻辑与||
逻辑或
实例讲解
// 例子1
console.log(2 + 3 * 4); // 14
// 解释:乘法优先级高于加法,所以先计算3 * 4,然后结果与2相加。// 例子2
console.log(2 + (3 * 4)); // 14
// 解释:括号内的运算最先执行,与例子1相同。// 例子3
console.log(2 > 1 && 4 < 5); // true
// 解释:逻辑与 `&&` 的优先级高于比较运算符,所以先执行两个比较,然后进行逻辑与运算。// 例子4
console.log(2 > 1 || 4 < 5 && 6 > 3); // true
// 解释:逻辑与 `&&` 的优先级高于逻辑或 `||`,所以先计算 4 < 5 && 6 > 3,然后结果与 2 > 1 进行逻辑或运算。// 例子5
console.log(a = 10, a == 10); // 10 true
// 解释:赋值运算符的优先级较低,所以先执行赋值操作 a = 10,然后比较 a 是否等于10。