-什么是逻辑运算符?
-
名称:逻辑与 &&
-
格式:条件表达式A && 条件表达式B
-
返回值:true和 false
-
特点:一假则假
let msg = true && true;// true let msg = false && true;// false let msg = true && false;// false let msg = false && false;// false
-
名称:逻辑或 ||
-
格式:条件表达式A || 条件表达式B
-
返回值:true和 false
-
特点:一真则真
let msg = true || true;// true
let msg = false || true;// true
let msg = true || false;// true
let msg = false || false;// false
-
名称:逻辑非 !
-
格式:!条件表达式
-
返回值:true 和false
-
特点:真变假,假变真
let msg =!true; //false
let msg =!false; //true
-逻辑运算符的结合性和优先级
-
结合性是左结合性(从左至右的运算)
-
逻辑运算中逻辑与(&&)的优先级高于逻辑或(||)
let msg =true||false&&false;//let msg =true||false; let msg =true;
console.log(msg);//控制器输出的是true
逻辑运算符的注意点:
1.在逻辑运算中如果不是布尔类型,那么就会先转换为布尔类型,再参与其他的运算
let msg=!1;//let msg=!true; 返回false
let msg=!0;//let msg=!false; 返回true
2.在逻辑与运算中,如果参与运算的条件(有一个)不是布尔类型,返回值有一个特点
格式:条件A && 条件B
-
如果条件A不成立(false),那么就会返回条件A
-
如果条件A成立(true),那么无论条件B是否成立,都会返回条件B
//如果条件A不成立(false),那么就会返回条件A
let msg =0 && 12;//0
let msg=null && 12;//null
//如果条件A成立(true),那么无论条件B是否成立,都会返回条件B
let msg =1 && null;//null
let msg=1 && 123;//123
3..在逻辑或运算中,如果参与运算的条件(有一个)不是布尔类型,返回值有一个特点
格式:条件A || 条件B
-
如果条件A成立(true),那么就会返回条件A
-
如果条件A不成立(false),那么无论条件B是否成立,都会返回条件B
//如果条件A成立(true),那么就会返回条件A
let msg = 6 || 0;//6
//如果条件A不成立(false),那么无论条件B是否成立,都会返回条件B
let msg =0 || null;//null 条件A和条件B都不成立
let msg=0 || 123;//123
4.在逻辑与运算中,有一个逻辑短路的现象
-有什么用处?
可以提升效率,减少代码执行的时间。
格式:条件A && 条件B
因为逻辑与运算的规则是一假则假,所以只要条件A是假的,那么条件B就不会被运算。
let num=1;
//条件A(1>2)的结果是假的,结束运算。短路
let msg =(1>2)&&(++num>0);
console.log(num);//1 说明条件B没有被执行运算,所以num没有任何变化。
console.log(msg);//false
5..在逻辑或运算中,有一个逻辑短路的现象
格式:条件A || 条件B
因为逻辑与运算的规则是一真则真,所以只要条件A是真的,那么条件B就不会被运算。
let num=1;
//条件A(1<2)得结果是真的,结束运算。短路
let msg =(1<2)||(++num>0);
console.log(num);//1 说明条件B没有被执行运算,所以num没有任何变化。
console.log(msg);//true
逗号运算符 ,
-在JavaScript中逗号运算符一般用于简化代码
// 利用逗号运算符可以同时定义多个变量,减少代码量
let a,b;
// 利用逗号运算符可以同时给多个变量赋值,减少代码量
x=1,y=2;
-逗号运算符的结合性和优先级
逗号运算符是左结合性(从左至右运算)
逗号运算符的优先级是所有运算符中最低的(相当于青铜级别的)
逗号运算符也是一个运算符,相应的也有运算符结果,它的运算结果就是最后一个表达式的结果。
表达式1,表达式2,表达式3,...;
//第一个表达式结果为2,第二个表达式结果为3,第三个表达式结果为4.
let msg =((1+1),(1+2),(1+3));
// 控制台输出的结果为4,说明逗号运算符的运算结果就是最后一个表达式的结果
console.log(msg);//4