首页前端开发JavaScriptjavascript的逻辑运算符有哪些

javascript的逻辑运算符有哪些

时间2024-01-30 16:48:03发布访客分类JavaScript浏览223
导读:收集整理的这篇文章主要介绍了javascript的逻辑运算符有哪些,觉得挺不错的,现在分享给大家,也给大家做个参考。javascript的逻辑运算符有:1、逻辑与“&&”,只有两个操作数都为true时,才返回true;2、逻...
收集整理的这篇文章主要介绍了javascript的逻辑运算符有哪些,觉得挺不错的,现在分享给大家,也给大家做个参考。

javascript的逻辑运算符有:1、逻辑与“& & ”,只有两个操作数都为true时,才返回true;2、逻辑或“||”,如果两个操作数都为true,或其中一个为true,就返回true;3、逻辑非“!”,把操作数的值转换为布尔值,并取反。

本教程操作环境:windows7系统、javascript1.8.5版、Dell G3电脑。

javascript中的逻辑运算符

逻辑运算符通常用来组合多个表达式,逻辑运算符的运算结果是一个布尔值,只能有两种结果,不是 true 就是 false。下表中列举了 JavaScript 中支持的逻辑运算符:

运算符名称示例
& & 逻辑与x & & y 表示如果 x 和 y 都为真,则为真
||逻辑或x || y 表示如果 x 或 y 有一个为真,则为真
!逻辑非!x 表示如果 x 不为真,则为真

逻辑与运算

逻辑与运算(& & )是 AND 布尔操作。只有两个操作数都为 true 时,才返回 true,否则返回 false。具体描述如表所示。

逻辑与运算
第一个操作数第二个操作数运算结果
truetruetrue
truefalsefalse
falsetruefalse
falsefalsefalse

逻辑与是一种短路逻辑,如果左侧表达式为 false,则直接短路返回结果,不再运算右侧表达式。运算逻辑如下:

  • 第 1 步:计算第一个操作数(左侧表达式)的值。

  • 第 2 步:检测第一个操作数的值。如果左侧表达式的值可转换为 false(如 null、undefined、NaN、0、""、false),那么就会结束运算,直接返回第一个操作数的值。

  • 第 3 步:如果第一个操作数可以转换为 true,则计算第二个操作数(右侧表达式)的值。

  • 第 4 步:返回第二个操作数的值。

示例1

下面代码利用逻辑与运算检测变量并进行初始化。

VAR user;
      //定义变量(! user &
    &
     console.LOG("没有赋值"));
      //返回提示信息“没有赋值”

等效于:

var user;
  //定义变量if (! user){
      //条件判断    console.log("变量没有赋值");
}
    

如果变量 user 的值为 0 或空字符串等假值转换为布尔值时,则为 false,那么当变量赋值之后,依然提示变量没有赋值。因此,在设计时必须确保逻辑与左侧的表达式返回值是一个可以预测的值。

var user = 0;
      //定义并初始化变量(! user &
    &
     console.log("变量没有赋值"));
      //返回提示信息“变量没有赋值”

右侧表达式不应该包含赋值、递增、递减和函数调用等有效运算,因为当左侧表达式为 false 时,则直接跳过右侧表达式,会给后面的运算带来潜在影响。

逻辑或运算

逻辑或运算||是布尔 OR 操作。如果两个操作数都为 true,或者其中一个为 true,就返回 true,否则就返回 false。具体如图所示。

逻辑或运算
第一个操作数第二个操作数运算结果
truetruetrue
truefalsetrue
falsetruetrue
falsefalsefalse

逻辑或也是一种短路逻辑,如果左侧表达式为 true,则直接短路返回结果,不再运算右侧表达式。运算逻辑如下:

  • 第 1 步:计算第一个操作数(左侧表达式)的值。

  • 第 2 步:检测第一个操作数的值。如果左侧表达式的值可转换为 true,那么就会结束运算,直接返回第一个操作数的值。

  • 第 3 步:如果第一个操作数可以转换为 false,则计算第二个操作数(右侧表达式)的值。

  • 第 4 步:返回第二个操作数的值。

示例2

针对下面 4 个表达式:

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")) ||

逻辑与和逻辑或运算符具有以下 2 个特点:

  • 在逻辑运算过程中,临时把操作数转换为布尔值,然后根据布尔值决定下一步的操作,但是不会影响操作数的类型和最后返回结果。

  • 受控于第一个操作数,可能不会执行第二个操作数。

逻辑非运算

逻辑非运算!是布尔取反操作(NOT)。作为一元运算符,直接放在操作数之前,把操作数的值转换为布尔值,然后取反并返回。

示例3

下面列举一些特殊操作数的逻辑非运算返回值。

console.log( ! {
}
     );
      //如果操作数是对象,则返回falseconsole.log( ! 0 );
      //如果操作数是0,则返回trueconsole.log( ! (n = 5));
      //如果操作数是非零的任何数字,则返回falseconsole.log( ! null );
      //如果操作数是null,则返回trueconsole.log( ! NaN );
      //如果操作数是NaN,则返回trueconsole.log( ! InfinITy );
      //如果操作数是Infinity,则返回falseconsole.log( ! ( - Infinity ));
      //如果操作数是-infinity,则返回falseconsole.log( ! undefined );
      //如果操作数是undefined,则返回true

示例4

如果对操作数执行两次逻辑非运算操作,就相当于把操作数转换为布尔值。

console.log( ! 0 );
      //返回trueconsole.log( ! ! 0 );
      //返回false

逻辑与和逻辑或运算的返回值不必是布尔值,但是逻辑非运算的返回值一定是布尔值。

【推荐学习:javascript高级教程】

以上就是javascript的逻辑运算符有哪些的详细内容,更多请关注其它相关文章!

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!

javascript

若转载请注明出处: javascript的逻辑运算符有哪些
本文地址: https://pptw.com/jishu/592780.html
浅析如何基于脚手架配置 Angular 代理(proxy) C#如何连接到sql server2008数据库的示例分享

游客 回复需填写必要信息