短路问题经常是发生在逻辑运算符中的逻辑与(&&)、逻辑或(||)

  1、逻辑或(||)

    他是一真则真,当逻辑或前面的表达式结果为1或true时,逻辑或后面的表达式是不会执行的

  2、逻辑与(&&)

    他是一假则假,当逻辑与前面的表达式结果为0或false时,逻辑与后面的表达式是不会执行的

  3、小知识点:当一个表达式中既有逻辑与,又有逻辑或,那么先执行逻辑与,逻辑与的优先级比逻辑或高

  用几个例子来说明一下

  var a=1,b=2,c="博客园";

  a || b && c="百度";

  console.log(c)

  解析:由于上面这个表达式中既有逻辑与,又有逻辑或,所以先执行逻辑与

  上面的表达式也就演变成了:a ||  (b && c="百度"); a=1,所以为true,那么遇到真了,后面的(b && c="百度")这个表达式就不会执行了,自然而然c="百度"这句话就不会执行,所以c="博客园"。

  那么如果(a || b) && c="百度"  

  console.log(c)

  解析:因为有了括号,所以先执行括号里的,a=1为true,根据逻辑与的短路,遇到真了后面的依然会继续执行,遇到假的后面才不会执行,所以就变成了 true && c="百度";所以c被重新赋值了,所以c="百度"

  

js的短路的更多相关文章

  1. JS利用短路原理简写if语句

    看GoogleDoodle-Dance的源代码,学习到一个小知识——简写if语句. 几乎所有语言中||和&&都遵循“短路”原理,如&&中第一个表达式为假就不会去处理第二 ...

  2. JS中短路运算符&&和||

    在JS函数中我们经常会使用到短路运算符,主要是逻辑与(&&) 和 逻辑或(||) 1.逻辑与 && 的运算方式 var a = 5 && 6; cons ...

  3. js中if的另类实现

    偶然发现一篇有意思的博客<JS利用短路原理简写if语句>  利用&&短路来实现if的简写. 如 1==2&&a1=1,则后面的a1=1不会进行判断,1==1 ...

  4. JavaScript小细节点罗列

    共勉! 属性访问表达式 众所周知,JavaScript为属性的访问定义了两种语法方式: 表达式.标识符 // 表达式(指定对象) 标识符(指定需要访问的属性的名称) 表达式[表达式] //表达式1(指 ...

  5. JavaScript小细节点罗列(1)

    共勉! 属性访问表达式 众所周知,JavaScript为属性的访问定义了两种语法方式: 表达式.标识符 // 表达式(指定对象) 标识符(指定需要访问的属性的名称) 表达式[表达式] //表达式1(指 ...

  6. JS逻辑运算符&&与||的短路运算

    最近看到一个360面试题,题目如下: 下面代码的输出值是? alert(1&&2); 正确的结果是 2. 1.后来仔细研究了一下JS逻辑运算的相关内容,在MDN上面找到相应描述: 下面 ...

  7. js短路表达式

    今天碰见个题目,感觉短路表达式很好用. 题目: 定义一个计算圆面积的函数area_of_circle(),它有两个参数: r: 表示圆的半径: pi: 表示π的值,如果不传,则默认3.14 funct ...

  8. JS循环 for while 全局/局部变量 短路

    循环语句: For for循环的格式 for(var i = 0; i < 10; i ++){ } for循环的执行顺序: ①   ② 若判断为 true  进④  进③ 进②判断 ……循环 ...

  9. js 实用技巧 短路求值

    &&运算符  如果操作有false  则返回false  例如 0&&1  // 返回0 true&&false  //返回false 0&&a ...

随机推荐

  1. python,day3,函数基础-3

    本节内容 1. 函数基本语法及特性 2. 参数与局部变量 3. 返回值 嵌套函数 4.递归 5.匿名函数 6.函数式编程介绍 7.高阶函数 8.内置函数 1.函数基本语法及特性 函数是什么? 函数一词 ...

  2. C博客作业04--数组

    1. 本章学习总结 1.1 思维导图 1.2 本章学习体会及代码量学习体会 1.2.1 学习体会 这几周学习了数组,一维数组,二维数组,字符数组,前一个题集还没做完,后一个题集就又发布了,当场去世,可 ...

  3. base64使用

    public static void main(String args[]) throws Exception { InputStream in = null; byte[] data = null; ...

  4. 原生JS动态添加和删除类

    原生JS动态添加和删除类 由于需要, 给按钮组监听点击事件(要求用事件委托),当有一个按钮被点击时,相应的给该按钮添加一个类(激活类),其他没有点击的按钮就要移出该类 添加和和删除类有三种方法 首先等 ...

  5. bzoj4710 [Jsoi2011]分特产(容斥)

    4710: [Jsoi2011]分特产 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 814  Solved: 527[Submit][Status] ...

  6. python调用远程chromedriver.exe、selenium抓包方法

    本地python示例代码: from selenium import webdriver driver = webdriver.Remote(command_executor='http://192. ...

  7. [C++ Primer Plus] 第9章、内存模型和名称空间(一)程序清单

    程序清单9.9(静态存储连续性.无链接性) #include<iostream> using namespace std; ; void strcount(const char *str) ...

  8. 对Activity的DecorView的包装(二)

    看了下公司的系统代码对于根布局decor_layout.xml的修改, 有所获. 前些时候才开始做系统开发的时候, 总想改改系统的源码, 至于原因: 人总是想装装, 在踩过几个别人修改的坑后, 还是觉 ...

  9. MemoryCache

    https://docs.microsoft.com/en-us/dotnet/api/system.runtime.caching.memorycache?view=netframework-4.8 ...

  10. python程序—系统检测

    监控系统内存,CPU,硬盘的使用情况,到达阈值时会自动发送邮件报警! import yagmail import psutil def sendmail(subject,contents): #连接邮 ...