广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >JavaScript 逻辑且(&&)和逻辑或(||)的运用小结
  • 520
分享到

JavaScript 逻辑且(&&)和逻辑或(||)的运用小结

2024-04-02 19:04:59 520人浏览 泡泡鱼
摘要

目录简单运用进阶运用逻辑且逻辑或逻辑且提供默认值逻辑或提供默认值比较两者更多逻辑或的例子属性的默认值函数结果的默认值简单运用 逻辑且(&&):左右必须都满足 true

简单运用

逻辑且(&&):左右必须都满足 true 才返回 true;逻辑或(||):左右其中一个满足 true 就返回 true。

这样简单的运用是整体返回一个布尔值,适合在语句判断的时候用:

let user = localStorage.getItem("user");

if (user && user.age > 10) {
  // ...
}

当 user 存在时(即 true),且 user 的 age 字段大于 10,if语句得到的布尔值才是 true,第一个条件句才执行。

进阶运用

上面都是逻辑且和逻辑或的简单使用,其实它们大有用处,还能简化代码。运算符操作的对象称之为操作数(Operand)。

逻辑且

左边操作数结果右边操作数结果执行的操作数整体结果
truetruetrue
falsetruefalse
truefalsefalse
falsefalsefalse

根据上表格得出一个结论:

  • 如果左操作数的结果是一个 true,就执行右操作数。
  • 如果左操作数的结果是一个 false,就执行左操作数。

假设传入了回调函数就执行,否则跳过不执行。一般想到的是用 if 条件语句,或者三元运算符简化 if 条件语句。然而,利用逻辑且(&&)的特性可以进一步简化代码:

function fun(callback) {
  // ...
  callback && callback();
}

fun(() => console.log("execute callback function.")); // 控制台打印了字符串!
fun(); // 什么也没有发生!

逻辑或

左边操作数结果右边操作数结果执行的操作数整体结果
truetruetrue
falsetruetrue
truefalsetrue
falsefalsefalse

根据上表得出结论:

  • 如果左操作数的结果是一个 true,就执行左操作数。
  • 如果左操作数的结果是一个 false,就执行右操作数。

简而言之,逻辑或(||)一旦遇到操作数的结果是 true,就执行这个操作数,而另一个操作数直接忽略不执行,即“短路”。

逻辑且提供默认值

if 语句提供默认值:

function fun(x) {
  if (!x) {
    x = "default value";
  }
  console.log(x);
}

fun(undefined); // "default value"
fun("inject a value"); // inject a value

逻辑且提供默认值:

function fun(x) {
  x = !x && "default value";
  console.log(x);
}

fun(undefined); // "default value"
fun("inject a value"); // false

逻辑且要判断第一个操作数(左操作数)是不是 false,如果是就直接执行第一个操作数。我本来就有默认值要提供,但第一个操作数就已经截断了第二个操作数的执行。上面的代码,为了保证参数提供的是假值而执行第二个操作数的结果,导致传入非假值返回的是 false。

可能是我没有想到更好的方式,所以,我认为逻辑且(&&)不适合用来提供默认值。

逻辑或提供默认值

实际上逻辑或提供默认值才是等价于上面说到的 if 语句提供默认值的逻辑:

function fun(x) {
  x = x || "default value";
  console.log(x);
}
fun(undefined); // "default value"
fun("inject a value"); // inject a value

所以,我认为逻辑或(||)适合提供默认值这一工作。

比较两者

逻辑或(||)的用处比逻辑且的用途广。前面说到,逻辑且(&&)不适合提供默认值,而逻辑或(||)既适合提供默认值,也适合做决定是否执行回调函数等一些列工作。

改造进阶运用 - 逻辑且的例子代码:

function fun(callback) {
  // ...
  !callback || callback();
}

fun(() => console.log("execute callback function.")); // 控制台打印了字符串!
fun(); // 什么也没有发生!

更多逻辑或的例子

属性的默认值

setTitle(options.title || 'untitled');

在给函数传递参数时,如果 options.title 是 null 或者其他之类的假值,就提供字符串untitled给函数。

函数结果的默认值

function countOccurrences(regex, str) {
  return (str.match(regex) || []).length;
}

match()方法会返回一个数组或 null。得益于逻辑或(||),在后一种请看下可以设置一个默认值。因此,在这两种情况下你都可以安全地访问 length 属性。

到此这篇关于javascript 逻辑且(&&)和逻辑或(||)的妙用的文章就介绍到这了,更多相关JavaScript 逻辑且(&&)和逻辑或(||)内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: JavaScript 逻辑且(&&)和逻辑或(||)的运用小结

本文链接: https://www.lsjlt.com/news/166830.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • JavaScript 逻辑且(&&)和逻辑或(||)的运用小结
    目录简单运用进阶运用逻辑且逻辑或逻辑且提供默认值逻辑或提供默认值比较两者更多逻辑或的例子属性的默认值函数结果的默认值简单运用 逻辑且(&&):左右必须都满足 true...
    99+
    2022-11-13
  • JavaScript逻辑运算符如何用
    本文小编为大家详细介绍“JavaScript逻辑运算符如何用”,内容详细,步骤清晰,细节处理妥当,希望这篇“JavaScript逻辑运算符如何用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学...
    99+
    2022-10-19
  • JavaScript如何对条件使用逻辑或
    这篇文章给大家分享的是有关JavaScript如何对条件使用逻辑或的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。对条件使用逻辑或我曾经在函数的开头声明自己的变量,只是为了避免在出现任何意外错误的情况下得到 und...
    99+
    2023-06-27
  • javascript的逻辑运算符有哪些
    本篇内容介绍了“javascript的逻辑运算符有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! ...
    99+
    2022-10-19
  • javascript中的逻辑运算符有哪些
    本篇内容主要讲解“javascript中的逻辑运算符有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“javascript中的逻辑运算符有哪些”吧! ...
    99+
    2022-10-19
  • javascript逻辑运算符||和&&怎么使用
    这篇文章主要讲解了“javascript逻辑运算符||和&&怎么使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“javascript逻辑运算符||和&&怎么...
    99+
    2023-06-04
  • javascript逻辑运算符的概念是什么
    这篇“javascript逻辑运算符的概念是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这...
    99+
    2022-10-19
  • Python中的逻辑运算符用法
    本篇内容介绍了“Python中的逻辑运算符用法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、逻辑运算符and在某些场景下,需要同时检查两...
    99+
    2023-06-02
  • JavaScript 中如何使用逻辑赋值运算符
    本篇文章为大家展示了JavaScript 中如何使用逻辑赋值运算符,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。无条件 vs 有条件数学运算符,例如 +是无条件的。...
    99+
    2022-10-19
  • 一文总结JS中逻辑运算符的特点
    目录Js中的逻辑运算符描述JS逻辑运算符的特点1. 取反 !2. 逻辑与 &&3. 逻辑或 ||总结 Js中的逻辑运算符 JavaScript中有三个逻辑运...
    99+
    2022-11-13
  • php逻辑运算符的使用方法
    小编给大家分享一下php逻辑运算符的使用方法,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!php有什么用php是一个嵌套的缩写名称,是英文超级文本预处理语言,它的语法混合了C、Java、Perl以及php自创新的语法,主要...
    99+
    2023-06-14
  • 常用的java逻辑运算符有哪些
    常用的Java逻辑运算符有以下几种:1. 与运算符(&&):当两个操作数都是true时,结果为true;否则为false。2. 或运...
    99+
    2023-10-10
    java
  • php中&&和||逻辑运算符怎么使用
    本篇内容主要讲解“php中&&和||逻辑运算符怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“php中&&和||逻辑运算符怎么使用”吧!一. &&a...
    99+
    2023-07-04
  • python中and和or逻辑运算符的用法示例
    目录一、概述二、用法说明(一)and 用法(二)or 用法三、两个集合and 和or操作的时候的问题四、优先级问题(and > or)附:python中if语句and和or用法...
    99+
    2022-11-12
  • 逻辑运算符的使用方法有哪些
    逻辑运算符通常用于布尔类型的值之间进行比较和操作,常见的逻辑运算符有以下几种:1. 与运算符(&&):当且仅当两个操作数都为真时,结...
    99+
    2023-06-14
    逻辑运算符
  • C#中可用的逻辑运算符有哪些
    今天小编给大家分享一下C#中可用的逻辑运算符有哪些的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。实例请看下面的实例,了解 C...
    99+
    2023-06-17
  • javascript中逻辑运算符&&和||返回值的示例分析
    这篇文章主要介绍了javascript中逻辑运算符&&和||返回值的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。v...
    99+
    2022-10-19
  • python中and和or逻辑运算符的示例分析
    这篇文章给大家介绍python中and和or逻辑运算符的示例分析,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。一、概述python中的逻辑操作符and 和or,也叫惰性求值,由于是惰性,只要确定了值就不往后解析代码了。...
    99+
    2023-06-26
  • Oracle的体系结构和物理、逻辑存储结构介绍
    本篇内容主要讲解“Oracle的体系结构和物理、逻辑存储结构介绍”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Oracle的体系结构和物理、逻辑存储结构介绍”吧...
    99+
    2022-10-18
  • Python3中的逻辑运算符与成员运算符怎么用
    今天小编给大家分享一下Python3中的逻辑运算符与成员运算符怎么用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下...
    99+
    2022-10-19
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作