&& 逻辑与:当两个操作数的值都为true时,运算结果为true;
||逻辑或:只要两个操作数中有一个值为true时,运算结果就为true;
!逻辑非:对操作数取反,即true值非运算的结果false,false值非运算的结果为true;
案例:
test1:
var a=1,b=0,c="Hello";
a||b&&(c="world");
console.log(c);
//结果是:Hello
//逻辑与的优先级优于逻辑或,因此等价于 a||(b&&(c="world"))因为a=1为真,且||或运算一个为真即可,所以,||表达式不用看;
test2:
var a=1,b=0,c="Hello";
(a||b)&&(c="world");
console.log(c);
//结果:world
//优先括号里面的,因为,a真b真,a||b为真,但与运算&&要求两边都为真,所以,c要赋值=world;
逻辑与 &&
当逻辑与(&&)前面是0(false)时,&&后面的表达式并不会执行。逻辑或 ||
当逻辑或(||)前面的表达式结果“非0(真)”时,||符号后面的表达式并不会执行。
优先级由高到低:
逻辑非!>++i(–i)>算数操作符>关系操作符>逻辑与,逻辑或>条件操作符>赋值操作符