一般来讲 && 运算和 | | 运算得到的结果都是 true 和 false ,但是 js 中的有点不太一样。当进行 a&&b 和 a| |b (如 1&&4 , 2| |3 )这样的运算时,会出现不一样的结果。

JS中的 && 和 | | 运算规律如下: 
1. a&&b 时,若 a 不成立,结果为 a ,若 a 成立,结果为 b 
2. a| |b 时,若 a 成立,结果为 a ,若 a 不成立,结果为 b

举个例子:

3&&4     //结果为4
0&&2 //结果为0
2&&0 //结果为0
0&&1&&2 //结果为0
1&&0&&2 //结果为0
1||2 //结果为1
0||5 //结果为5
4||0 //结果为4
0||0 //结果为0
2&&"string" //结果为"string"
"string"||3 //结果为"string"

由此可以看出,js 的 && 运算符和 | | 运算符的运算规律为,将得出逻辑运算结果的表达式结果作为运算结果,如 a&&b ,若 a 不成立,则 a&&b 不成立,虽然 b 仍会运算,但已经不影响结果了,所以运算结果为a。

JavaScript中||和&&的运算的更多相关文章

  1. javascript中的浮点数运算

    解释一下下面代码的输出 console.log(0.1 + 0.2); //0.30000000000000004 console.log(0.1 + 0.2 == 0.3); //false Jav ...

  2. javascript中的位运算,

    罗浮宫群里又有讨论位运算符号|了,做过一段时间php,数据库保存布尔值数据经常用到,比如100110 就表明了六个属性的是与否,极大减少了数据量..] ECMAScript 中位运算跟其他语言一样的. ...

  3. JavaScript中的加法运算

    <head runat="server"> <title>JavaScript实现加法计算器</title> <script type=& ...

  4. JavaScript中赋值运算符的使用

    JavaScript中的赋值运算可以分为简单赋值运算和复合赋值运算.简单赋值运算是将赋值运算符(=)右边表达式的值保存到左边的变量中:而复合赋值运算混合了其他操作(例如算术运算操作)和赋值操作.例如: ...

  5. JavaScript 中运算优先级问题

    优先级引发的问题 这篇文章对 JavaScript 中的运算符进行小结,很多人对运算符优先级这一知识点都是一带而过.这就导致在写一些比较奇葩的 js 代码,你并不知道它的输出是啥,下面举一个例子,这也 ...

  6. Javascript中的函数数学运算

    1.Math函数与属性使用语法 Math.方法名(参数1,参数2,...); Math.属性; 说明 Math函数可以没有参数,比如Math.random()函数,或有多个参数,比如Math.max( ...

  7. 在JavaScript中"+"什么时候是链接符号,什么时候是加法运算?

    二元加法运算符“+”在两个操作数都是数字或都是字符串时,计算结果是显而易见的.加号“+”的转换规则优先考虑字符串连接,如果其中一个操作数是字符串或者转换为字符串的对象,另外一个操作数会转换为字符串,加 ...

  8. JavaScript 中的数据类型

    Javascript中的数据类型有以下几种情况: 基本类型:string,number,boolean 特殊类型:undefined,null 引用类型:Object,Function,Date,Ar ...

  9. Javascript中的valueOf与toString

    基本上,javascript中所有数据类型都拥有valueOf和toString这两个方法,null除外.它们俩解决javascript值运算与显示的问题,本文将详细介绍,有需要的朋友可以参考下. t ...

随机推荐

  1. Python面向对象之:三大特性:继承,封装,多态以及类的约束

    前言: python面向对象的三大特性:继承,封装,多态. 1. 封装: 把很多数据封装到⼀个对象中. 把固定功能的代码封装到⼀个代码块, 函数, 对象, 打包成模块. 这都属于封装的思想. 具体的情 ...

  2. Go 的 http 包的源码,通过代码我们可以看到整个的 http 处理过程

    func (srv *Server) Serve(l net.Listener) error {defer l.Close() var tempDelay time.Duration // how l ...

  3. 搭建OpenStack私有云准备工作

    Centos7安装完成后克隆其他子节点 首先在VMware中:右击 虚拟机controller-->设置-->添加-->网络适配器,然后做如下设置: 在VMware中操作 点击:克隆 ...

  4. burpsuit的安装和简单使用

    一.burpsuit的环境搭建 Burp Suite可以说是Web安全工具中的瑞士军刀,打算写几篇Blog以一个小白的角度去学习Burp Suite(简称BP),会详细地说一下的用法,说明一下每一个部 ...

  5. 详解如何实现斗鱼、B站等全局悬浮窗直播小窗口

    最近业务需求需要我们直播返回或者退出直播间时,开一个小窗口在全局继续直播视频,先看效果图. 调研了一下当下主流直播平台,斗鱼.BiliBili等app,都是用WindowManger做的(这个你可以在 ...

  6. Collection-接口中的方法(新手)

    /* Collection 接口中的方法 ArrayList implements List 数组列表 实现 列表 List extends Collection 列表 继承 数组列表*///导入包. ...

  7. postman使用简介

    postman进行Http类型的接口测试的功能测试(手工测试): 1.postman下载,解压,打开Chrome浏览器-->设置-->扩展程序-->勾选开发者模式-->加载已解 ...

  8. SpringBoot 拦截器 && 拦截之后返回前台自定义格式

    1.加入 阿里的 json jar包 <!--json jar相关jar包--> <dependency> <groupId>com.fasterxml.jacks ...

  9. C# 通过反射访问类库DLL的路径打开窗体功能

    //通过访问目录下的DLL Assembly ass = Assembly.LoadFile(Application.StartupPath + "\\Design.dll"); ...

  10. masql数据库的表查询

    昨日回顾 表与表之间建关系 一对多 换位思考 图书与出版社 先站在左表: 考虑左表的多条数据能否对应右表的一条数据 翻译:多本书能否被一个出版社出版 可以! 注意:单站在一张得出的表关系并不能明确两张 ...