我的编程空间,编程开发者的网络收藏夹
学习永远不晚

es6中有&符号吗

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

es6中有&符号吗

本篇内容介绍了“es6中有&符号吗”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

有&符号。在es6中,“&&”是逻辑与运算符,是一种AND布尔操作,语法为“操作数1 && 操作数2”;只有两个操作数都为true时,才返回true,否则返回false。逻辑与是一种短路逻辑,如果左侧表达式为 false,则直接短路返回结果,不再运算右侧表达式。

es6中有&符号,“&&”是逻辑与运算符。

逻辑与运算&&

逻辑与运算(&&)是 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 时,则直接跳过右侧表达式,会给后面的运算带来潜在影响。

示例2

使用逻辑与运算符可以代替设计多重分支结构。

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;switch(n){    case1:        console.log(1);        break;    case2:        console.log(2);        break;    case3:        console.log(3);        break;    default:        console.log("null");

逻辑与运算的操作数可以是任意类型的值,并返回原始表达式的值,而不是把操作数转换为布尔值再返回。

1) 对象被转换为布尔值时为 true。例如,一个空对象与一个布尔值进行逻辑与运算。

console.log(typeof ({} && true));  //返回第二个操作数的值  true的类型:布尔型console.log(typeof (true && {}));  //返回第二个操作数的值  {}的类型:对象

2) 如果操作数中包含 null,则返回值总是 null。例如,字符串 "null" 与 null 类型值进行逻辑与运算,不管位置如何,始终都返回 null。

console.log(typeof ("null" && null));  //返回null的类型:对象console.log(typeof (null && "null"));  //返回null的类型:对象

3) 如果操作数中包含 NaN,则返回值总是 NaN。例如,字符串 "NaN" 与 NaN 类型值进行逻辑与运算,不管位置如何,始终都返回 NaN。

console.log(typeof ("NaN" && NaN));  //返回NaN的类型:数值console.log(typeof (NaN && "NaN"));  //返回NaN的类型:数值

4) 对于 Infinity 来说,将被转换为 true,与普通数值一样参与逻辑与运算。

console.log(typeof ("Infinity" && Infinity));  //返回第二个操作数Infinity的类型:数值console.log(typeof (Infinity && "Infinity"));  //返回第二个操作数"Infinity"的类型:字符串

5) 如果操作数中包含 undefined,则返回 undefined。例如,字符串 "undefined" 与 undefined 类型值进行逻辑与运算,不管位置如何,始终都返回 undefined。

console.log(typeof ("undefined" && undefined));  //返回undefinedconsole.log(typeof (undefined && "undefined"));  //返回undefined

扩展知识:ES6中&&和 __ 鲜为人知的骚操作

众所周知,在es6中,逻辑运算符&&代表与条件,||代表或条件

let info = {  name:"long",  age:null};//&&//info的name与age同时为真,则结果为真if(info.name && info.age){  console.log("与条件"); //与条件}else{  console.log("失败");}//||//info的name或age,只要有一个为真,则结果为真if(info.name || info.age){  console.log("或条件"); //或条件}else{  console.log("失败");}

代替if/else

但是,他们还可以代表if/else进行简化

let info = {name:"long"};let name = info && info.name; //longlet isVip = false;let vipPrice = isVip || 19;//19
decide() && true();//如果decide()执行后为true,则执行true(),并输出true()的值;如果decide()执行后为false,则输出decide()执行后的结果,且不执行true()//预计使用场景,有一个mongo查询条件where,当name存在时,匹配name数据where= {age:19};name && where.name = name;
decide() || false();//如果decide()执行后为true,则执行decide(),并输出decide()的值,fasle()不执行;如果decide()执行后为false,则执行fasle(),且输出false()的结果
decide() && true() || fasle();//如果decide()执行后为true,则执行true(),并输出true()的值;//如果decide()执行后为false,则执行false(),并输出false()的值

“es6中有&符号吗”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

es6中有&符号吗

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

下载Word文档

猜你喜欢

es6中有&符号吗

本篇内容介绍了“es6中有&符号吗”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!有&符号。在es6中,“&&”是逻辑与运算符,是一种AND布
2023-07-04

es6中有没有&符号

有&符号。在es6中,“&&”是逻辑与运算符,是一种AND布尔操作,语法为“操作数1 && 操作数2”;只有两个操作数都为true时,才返回true,否则返回false。逻辑与是一种短路逻辑,如果左侧表达式为 false,则直接短路返回结果,不再运算右侧表达式。
2022-11-22

&在c语言中是什么符号

在 c 语言中,& 符号表示按位与运算符。它按位操作两个位模式,如果两个位都为 1,则结果为 1;否则,结果为 0。按位与运算符用于设置或清除特定位、测试位的状态以及组合位模式。在 C 语言中,& 符号是什么意思?在 C 语言中,& 符号
&在c语言中是什么符号
2024-04-13

linux中怎么使用&号和管道符号

这篇文章将为大家详细讲解有关linux中怎么使用&号和管道符号,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。掌握连接各个命令之间的连接符号用法也是很重要的。实际上,命令的用法并不难,例如 mkdir、to
2023-06-27

PHP引用&符号的注意问题有哪些

PHP引用&符号的注意问题有哪些,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。PHP引用&符号是一个比较难掌握的知识点。新手们在实际编写代码时一定要多注意这一点,因为如果你对P
2023-06-17

PHP中引用符号(&)的作用是什么

本篇文章给大家分享的是有关PHP中引用符号(&)的作用是什么,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。按位与$a & $b 将把 $a 和 $b 中都为1的位设为1.奇偶数
2023-06-15

es6中set类型是有序的吗

这篇文章主要介绍了es6中set类型是有序的吗的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇es6中set类型是有序的吗文章都会有所收获,下面我们一起来看看吧。es6中set类型是有序的。set类型是es6中新
2023-06-29

es6中的class有静态属性吗

这篇文章主要介绍“es6中的class有静态属性吗”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“es6中的class有静态属性吗”文章能帮助大家解决问题。es6中的class没有静态属性。静态属性是
2023-07-05

c语言有开根号运算符吗

这篇文章主要介绍“c语言有开根号运算符吗”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“c语言有开根号运算符吗”文章能帮助大家解决问题。在c语言中,没有开根号运算符,开根号使用的是内置函数“sqrt(
2023-07-05

scala中的符号有哪些

本篇内容介绍了“scala中的符号有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Scala中的符号::::三个冒号运算符:表示list
2023-06-19

es6怎么判断字符串中是否有某个字符串

判断方法:1、利用includes(),语法“str.includes(searchString[, position])”;2、利用indexOf(),语法“str.indexOf(substring)”,如果返回“-1”则没有;3、利用test()、match()或search()配合正则表达式查找,语法“exp.test(str)”、“str.match(exp)”。
2023-05-14

es6如何判断字符串中是否有某个字符串

这篇文章主要介绍了es6如何判断字符串中是否有某个字符串的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇es6如何判断字符串中是否有某个字符串文章都会有所收获,下面我们一起来看看吧。判断方法:1、利用includ
2023-07-05

linux shell中比较符号与特殊符号有什么区别

这篇文章主要介绍了linux shell中比较符号与特殊符号有什么区别,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。shell字符串比较、判断是否为数字 二元比较操作符,比较
2023-06-09

BAT中有哪些特殊符号

这篇文章主要介绍了BAT中有哪些特殊符号,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。^ 转义符 用在特殊符号之前 比如: echo 非常^&批处理 如果不加^ 那么"批处理
2023-06-08

php中常见的运算符有哪些符号

php 中的常见运算符符号包括:算术运算符(+、-、*、/、%)赋值运算符(=、+=、-=、*=、/=)比较运算符(==、!=、>、=、>)其他运算符(.、::、->)PHP 中的常见运算符符号运算符用于执行操作并修改变量。PHP 中的常
php中常见的运算符有哪些符号
2024-04-27

sql中的注释符号有哪些

sql 中,注释符号用于增强代码可读性。单行注释用 "--" 表示,多行注释用 "/" 和 "/" 标记。特殊注释包括 mysql 中的 "#" 和 sql server 中的 "rem"。使用注释时应保持其简洁性和一致性。SQL 中的注释
sql中的注释符号有哪些
2024-05-15

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录