返回顶部
首页 > 资讯 > 精选 >JavaScript中有哪些逻辑赋值运算符
  • 361
分享到

JavaScript中有哪些逻辑赋值运算符

2023-06-14 23:06:30 361人浏览 独家记忆
摘要

这期内容当中小编将会给大家带来有关javascript中有哪些逻辑赋值运算符,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。JavaScript是什么js是JavaScript的简称,它是一种直译式的脚本语

这期内容当中小编将会给大家带来有关javascript中有哪些逻辑赋值运算符,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

JavaScript是什么

js是JavaScript的简称,它是一种直译式的脚本语言,其解释器被称为JavaScript引擎,是浏览器的一部分,主要用于WEB开发,可以给网站添加各种各样的动态效果,让网页更加美观。

无条件 vs 有条件

数学运算符,例如 +是无条件的。

const x = 1 + 2中,无论如何,我们总是将LHS添加到RHS中,并将结果分配给x

LHS 和 RHS 是数学领域内的概念,意为等式左边和等式右边的意思,在我们现在的场景下就是赋值操作符的左侧和右侧。当变量出现在赋值操作符的左边时,就进行 LHS 查询;反之进行 RHS 查询。

我们甚至可以编写一些奇怪的代码,例如const x = false +2。JS 首先将false的 LHS 转换为Number,因此得到const x = Number(false)+ 2,其结果为const x = 0 + 2。 它将 LHS 添加到RHS,最后将其分配给x,得出2

逻辑运算符,例如 &&是有条件的

const x = true && 0 + 2中,首先计算 LHS,它为true。因为 LHS 的值为true,所以我们接下来运行 RHS 操作,它的值为2,同时也运行赋值操作,结果是2

const x = false && 0 + 2相比,LHS 为 false,因此 RHS 被完全忽略。

你可能想知道为什么要避免计算RHS? 两个常见的原因是获得更好的性能和避免副作用

二元逻辑运算符

&& || ??

在 JSX 中我们经常使用&&||来有条件地渲染界面。??nullish(空值)合并运算符,它是最近刚通过提案的,很快就会普及。它们都是 二元逻辑运算符。

  • 使用&&测试 LHS 的结果是否是真值。

  • 使用||测试 LHS 的结果是否是虚值。

  • ?? 测试 LHS 是否无效。

虚值  vs Nullish

在 JS 中有哪些算是虚值呢?

下面这两姐妹被认为是 nullish 值。

  • null

  • undefined

值得注意的是,使用二元逻辑运算符不一定返回布尔值,而是返回表达式的LHSRHS值。为了明确这些表达式类型的要点,重看一下 ECMAScript 文档中的这句话是有帮助的:

&&||产生的值不一定是布尔型的,而是两个操作数表达式之中的一个值。
一些事例
// &&/ /如果 LHS 是真值,计算并返回 RHS,否则返回 LHStrue && 100**2 // 10000 "Joe" && "JavaScript" // "JavaScript" false && 100**2 // false "" && 100**2 // "" NaN && 100**2 // NaN null && 100**2 // null undefined && 100**2 // undefined

逻辑赋值运算符

&&= ||= ??=

这个运算符将赋值与条件逻辑运算符结合在一起,因此命名为“逻辑赋值”。 它们只是一种简写, 例如,x && = yx && (x = y) 的简写。

从逻辑赋值返回的值不是更新的赋值,而是已计算表达式的值。

由于先前的ECMAScript特性,比如默认参数和nullish合并操作符,你可以说在逻辑赋值所提供的功能中肯定存在一些冗余。虽然这种速记看起来很流畅,而且我相信当我们发现更多的用例时,它会派上用场的。

逻辑与赋值 ( &&= )
// 逻辑与LHS &&= RHS// 等价于 LHS && (LHS = RHS) // 事例// if x is truthy, assign x to y, otherwise return x// 如果 x 为真值,则将 y 赋值给 x, 否则返回 xlet x = 1const y = 100x &&= y // x 为 100  // 与上面对应的长的写法x && (x = y)
逻辑或赋值 ( ||= )
// 逻辑或LHS ||= RHS // 等价于LHS || (LHS = RHS) // 事例// 如果 x 为真值,返回 x,否则将 y 赋值给 xlet x = NaNconst y = 100x ||= y // x 为 100 // 与上面对应的长的写法x || (x = y)
逻辑 nullish 赋值 ( ??= )
// 逻辑 nullishLHS ??= RHS // 等价于LHS ?? (LHS = RHS) // 事例// if x.z is nullish, assign x.z to ylet x = {}let y = 100;x.z ??= y // x 为 { z: 100 } // 与上面对应的长的写法x.z ?? (x.z = y)

实现中逻辑赋值的例子

React中的JSX

let loading = trueconst spinner = <Spinner />loading &&= spinner

DOM

el.innerhtml ||= 'some default'

对象

// 如果对象没有 onLoad 方法,则设置一个方法const config = {};config.onLoad ??= () => console.log('loaded!')
const myObject = { a: {} } myObject.a ||= 'A'; // 被忽略,因为 myObject 中 a 的值为真值myObject.b ||= 'B'; // myObject.b 会被创建,因为它不丰 myObject 中 // {//  "a": {}//  "b": "B"// } myObject.c &&= 'Am I seen?'; // 这里的 myObject.c 为虚值,所以什么都不会做

如何在项目中使用逻辑赋值

Chrome 已经支持逻辑赋值。 为了向后兼容,请使用 transfORMer。 如果您使用的是Babel,请安装插件

npm install @babel/plugin-proposal-logical-assignment-operators

并在 .babelrc 中添加发下内容:

{  "plugins": ["@babel/plugin-proposal-logical-assignment-operators"]}

上述就是小编为大家分享的JavaScript中有哪些逻辑赋值运算符了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注编程网精选频道。

--结束END--

本文标题: JavaScript中有哪些逻辑赋值运算符

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

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

猜你喜欢
  • JavaScript中有哪些逻辑赋值运算符
    这期内容当中小编将会给大家带来有关JavaScript中有哪些逻辑赋值运算符,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。JavaScript是什么JS是JavaScript的简称,它是一种直译式的脚本语...
    99+
    2023-06-14
  • JavaScript 中如何使用逻辑赋值运算符
    本篇文章为大家展示了JavaScript 中如何使用逻辑赋值运算符,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。无条件 vs 有条件数学运算符,例如 +是无条件的。...
    99+
    2024-04-02
  • javascript中的逻辑运算符有哪些
    本篇内容主要讲解“javascript中的逻辑运算符有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“javascript中的逻辑运算符有哪些”吧! ...
    99+
    2024-04-02
  • javascript的逻辑运算符有哪些
    本篇内容介绍了“javascript的逻辑运算符有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! ...
    99+
    2024-04-02
  • JavaScript中有哪些赋值运算符
    本篇文章给大家分享的是有关JavaScript中有哪些赋值运算符,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。JavaScript的特点1.JavaScript主要用来向HTM...
    99+
    2023-06-14
  • javascript赋值运算符有哪些
    javascript中的赋值运算符有:1.等号赋值运算符(=);2.加等赋值运算符(+=);3.减等赋值运算符(-=);4.乘等赋值运算符(*=);5.除等赋值运算符(/=);6.模等赋值运算符(%=);javascript中的赋值运算符有...
    99+
    2024-04-02
  • JavaScript常见逻辑运算符有哪些
    这篇文章将为大家详细讲解有关JavaScript常见逻辑运算符有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。JavaScript常见逻辑运算符有哪些JavaScri...
    99+
    2024-04-02
  • javascript的赋值运算符有哪些
    这篇文章主要介绍“javascript的赋值运算符有哪些”,在日常操作中,相信很多人在javascript的赋值运算符有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”ja...
    99+
    2024-04-02
  • C#中有哪些逻辑运算符
    这篇文章将为大家详细讲解有关C#中有哪些逻辑运算符,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。&、^、!和|操作符称为逻辑操作符,用逻辑操作符把运算对象连接起来符合C#语法的式子称...
    99+
    2023-06-18
  • python逻辑运算符有哪些
    python中的逻辑运算符:1.and运算符,将x和y做并列运算;2.or运算符,只要x和y两个条件有一个为True,那么整体结果就为True;3.not运算符,对x进行布尔取反,非真即假,非假即真;python中的逻辑运算符有以下几种an...
    99+
    2024-04-02
  • Python中的逻辑运算符有哪些?
    Python中的逻辑运算符有哪些?Python中的逻辑运算符用于对表达式进行逻辑比较,并返回布尔值(True或False)。Python中常用的逻辑运算符有三个:and、or和not。and运算符and运算符用于检查所有操作数是否为真(Tr...
    99+
    2023-10-22
    python中 逻辑运算符
  • c++中的逻辑运算符有哪些
    c++ 中的逻辑运算符有三个:and (&&)、or (||) 和 not (!)。and 返回两个操作数都为 true 时为 true,否则为 false;or 返回两...
    99+
    2024-05-01
    c++
  • js如何使用逻辑赋值运算符
    这篇文章主要介绍js如何使用逻辑赋值运算符,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!逻辑赋值运算符逻辑赋值运算符是由逻辑运算符&&、||、和赋值运算符=组合而成。const a ...
    99+
    2023-06-27
  • python中有哪些赋值运算符
    python中有哪些赋值运算符,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。1、赋值运算符支持链式赋值。如果想让多个变量同时引用同一个对象,可以使用链式赋值。a ...
    99+
    2023-06-20
  • JavaScript有哪些常见的赋值运算符
    这篇文章主要介绍了JavaScript有哪些常见的赋值运算符,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。JavaScript常见赋值运算符...
    99+
    2024-04-02
  • java中有哪些短路逻辑运算符
    本篇文章给大家分享的是有关java中有哪些短路逻辑运算符,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。Java可以用来干什么Java主要应用于:1. web开发;2. Andr...
    99+
    2023-06-14
  • shell布尔运算符与逻辑运算符有哪些
    本篇内容介绍了“shell布尔运算符与逻辑运算符有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!布尔运算符下面列出了常用的布尔运算符,假...
    99+
    2023-06-27
  • python中的赋值运算符有哪些
    python中的赋值运算符有:1.简单赋值运算符(=);2.加法赋值运算符(+=);3.减法赋值运算符(-=);4.乘法赋值运算符(*=);5.除法赋值运算符(/=);6.取模赋值运算符(%=);7.幂赋值运算符(**=);8.取整除赋值运...
    99+
    2024-04-02
  • php中的赋值运算符有哪些
    php 赋值运算符用于将值分配给变量,包括:单等号(=)将右值赋给左变量;加等于(+=)将右值加到左变量并赋值;减等于(-=)将右值减去左变量并赋值;乘等于(*=)将左变量乘以右值并赋值...
    99+
    2024-04-27
  • C#中可用的逻辑运算符有哪些
    今天小编给大家分享一下C#中可用的逻辑运算符有哪些的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。实例请看下面的实例,了解 C...
    99+
    2023-06-17
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作