我们常说的是 与运算 只有表达式都为 true 时,才返回 true,否则返回 false(口诀:全真才真,一假则假)
理解误区:&& || 直接返回的是布尔值?
答案是否定的:在与运算符在计算过程中,自左向右执行判断表达式,若当前表达式转为布尔值为false,则返回当前表达式的值否则将会继续执行,直到最后一个表达式,不再进行判断直接返回该表达式的值
简单说 逻辑与是一种短路逻辑,如果左侧表达式为 false,则直接短路返回结果,不再运算右侧表达式。运算逻辑如下(两个表达式的情况):
var a = 1 && 2;
var b = 0 && 2;
var c = 1 && 2 && null;
var d = 1 && 1-1 && null;
上述a的值为2,b为0,c为null,d为0
var user = 0; //定义并初始化变量
(! user && console.log("变量没有赋值")); //返回提示信息“变量没有赋值”
在或运算中执行方式和与运算一致,只是判断false才继续执行直到true或执行到最后一个表达式
不再举例