首页 >

javascript的逻辑运算符有哪些

web前端|js教程javascript的逻辑运算符有哪些
javascript,逻辑运算符
web前端-js教程
应用内测平台源码,vscode导入外部库红线,ubuntu14.0.4,tomcat怎么换项目,前端爬虫nodejs,php跨页面传值,江西短视频seo优化运营,房贷计算器网站源码,phpcms 用的是什么模板引擎lzw
javascript中的逻辑运算符
易房破解源码,vscode菜单没了,ubuntu要求,tomcat 锁死,js 连解sqlite,jquery 输入查找插件,前端框架有哪些学习交流,爬虫是不是要先登录,php docx,苏州优化系统seo,asp导航网站源码,html网页加图标素材,论坛网页模板lzw
逻辑运算符通常用来组合多个表达式,逻辑运算符的运算结果是一个布尔值,只能有两种结果,不是 true 就是 false。下表中列举了 JavaScript 中支持的逻辑运算符:
寻源码,VScode是C11标准吗,ubuntu和华硕,tomcat8配置成功,国人对爬虫,php大马怎么用,越秀区seo后台托管报价lzw
运算符名称示例
&&逻辑与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的逻辑运算符有哪些
  • PHP读书笔记(4)-运算符,php读书笔记运算符
  • PHP读书笔记(4)-运算符,php读书笔记运算符 | PHP读书笔记(4)-运算符,php读书笔记运算符 ...

    javascript的逻辑运算符有哪些
  • 教你搞定php逻辑运算符的短路运算
  • 教你搞定php逻辑运算符的短路运算 | 教你搞定php逻辑运算符的短路运算 ...

    javascript的逻辑运算符有哪些
  • 详解PHP中的null合并运算符,详解phpnull运算符
  • 详解PHP中的null合并运算符,详解phpnull运算符 | 详解PHP中的null合并运算符,详解phpnull运算符 ...