javascript的逻辑运算符有哪些
时间:2022-02-11 16:11
javascript的逻辑运算符有:1、逻辑与“&&”,只有两个操作数都为true时,才返回true;2、逻辑或“||”,如果两个操作数都为true,或其中一个为true,就返回true;3、逻辑非“!”,把操作数的值转换为布尔值,并取反。 本教程操作环境:windows7系统、javascript1.8.5版、Dell G3电脑。 逻辑运算符通常用来组合多个表达式,逻辑运算符的运算结果是一个布尔值,只能有两种结果,不是 true 就是 false。下表中列举了 JavaScript 中支持的逻辑运算符: 逻辑与运算 逻辑与运算( 逻辑与是一种短路逻辑,如果左侧表达式为 false,则直接短路返回结果,不再运算右侧表达式。运算逻辑如下: 第 1 步:计算第一个操作数(左侧表达式)的值。 第 2 步:检测第一个操作数的值。如果左侧表达式的值可转换为 false(如 null、undefined、NaN、0、""、false),那么就会结束运算,直接返回第一个操作数的值。 第 3 步:如果第一个操作数可以转换为 true,则计算第二个操作数(右侧表达式)的值。 第 4 步:返回第二个操作数的值。 示例1 下面代码利用逻辑与运算检测变量并进行初始化。 等效于: 如果变量 user 的值为 0 或空字符串等假值转换为布尔值时,则为 false,那么当变量赋值之后,依然提示变量没有赋值。因此,在设计时必须确保逻辑与左侧的表达式返回值是一个可以预测的值。 右侧表达式不应该包含赋值、递增、递减和函数调用等有效运算,因为当左侧表达式为 false 时,则直接跳过右侧表达式,会给后面的运算带来潜在影响。 逻辑或运算 逻辑或运算 逻辑或也是一种短路逻辑,如果左侧表达式为 true,则直接短路返回结果,不再运算右侧表达式。运算逻辑如下: 第 1 步:计算第一个操作数(左侧表达式)的值。 第 2 步:检测第一个操作数的值。如果左侧表达式的值可转换为 true,那么就会结束运算,直接返回第一个操作数的值。 第 3 步:如果第一个操作数可以转换为 false,则计算第二个操作数(右侧表达式)的值。 第 4 步:返回第二个操作数的值。 示例2 针对下面 4 个表达式: 可以使用逻辑或对其进行合并: 由于&&运算符的优先级高于||运算符的优先级,所以不必使用小括号进行分组。不过使用小括号分组后,代码更容易阅读。 逻辑与和逻辑或运算符具有以下 2 个特点: 在逻辑运算过程中,临时把操作数转换为布尔值,然后根据布尔值决定下一步的操作,但是不会影响操作数的类型和最后返回结果。 受控于第一个操作数,可能不会执行第二个操作数。 逻辑非运算 逻辑非运算 示例3 下面列举一些特殊操作数的逻辑非运算返回值。 示例4 如果对操作数执行两次逻辑非运算操作,就相当于把操作数转换为布尔值。 逻辑与和逻辑或运算的返回值不必是布尔值,但是逻辑非运算的返回值一定是布尔值。 【推荐学习:javascript高级教程】 以上就是javascript的逻辑运算符有哪些的详细内容,更多请关注gxlsystem.com其它相关文章!javascript中的逻辑运算符
运算符 名称 示例 && 逻辑与 x && y 表示如果 x 和 y 都为真,则为真 || 逻辑或 x || y 表示如果 x 或 y 有一个为真,则为真 ! 逻辑非 !x 表示如果 x 不为真,则为真 &&
)是 AND 布尔操作。只有两个操作数都为 true 时,才返回 true,否则返回 false。具体描述如表所示。第一个操作数 第二个操作数 运算结果 true true true true false false false true false false false false var user; //定义变量
(! user && console.log("没有赋值")); //返回提示信息“没有赋值”
var user; //定义变量
if (! user){ //条件判断
console.log("变量没有赋值");
}
var user = 0; //定义并初始化变量
(! user && console.log("变量没有赋值")); //返回提示信息“变量没有赋值”
||
是布尔 OR 操作。如果两个操作数都为 true,或者其中一个为 true,就返回 true,否则就返回 false。具体如图所示。第一个操作数 第二个操作数 运算结果 true true true true false true false true true false false false var n = 3;
(n == 1) && console.log(1);
(n == 2) && console.log(2);
(n == 3) && console.log(3);
( ! n ) && console.log("null");
var n = 3;
(n == 1) && console.log(1) ||
(n == 2) && console.log(2) ||
(n == 3) && console.log(3) ||
( ! n ) && console.log("null");
var n = 3;
((n == 1) && console.log(1)) ||
((n == 2) && console.log(2)) ||
((n == 3) && console.log(3)) ||
(( ! n ) && console.log("null")) ||
!
是布尔取反操作(NOT)。作为一元运算符,直接放在操作数之前,把操作数的值转换为布尔值,然后取反并返回。console.log( ! {} ); //如果操作数是对象,则返回false
console.log( ! 0 ); //如果操作数是0,则返回true
console.log( ! (n = 5)); //如果操作数是非零的任何数字,则返回false
console.log( ! null ); //如果操作数是null,则返回true
console.log( ! NaN ); //如果操作数是NaN,则返回true
console.log( ! Infinity ); //如果操作数是Infinity,则返回false
console.log( ! ( - Infinity )); //如果操作数是-Infinity,则返回false
console.log( ! undefined ); //如果操作数是undefined,则返回true
console.log( ! 0 ); //返回true
console.log( ! ! 0 ); //返回false