写了这么多JS,才发现JS的语法既是属于C语系的,又与一般C语系的编程语言某些地方有很大区别,其中&&和||就是其中一例。

C语系中的&&和||

  C语系的&&和||有一个特点,无论你把表达式写的天花乱坠,都会返回一个布尔值。

1,&&

  两边条件都为true时,结果才为true;

  如果有一个为false,结果就为false;

  当第一个条件为false时,就不再判断后面的条件;

  注意:当数值参与逻辑与运算时,结果为true,那么会返回的会是第二个为真的值;如果结果为false,返回的会是第一个为假的值。

2,||

  只要有一个条件为true时,结果就为true;

  当两个条件都为false时,结果才为false;

  当一个条件为true时,后面的条件不再判断;

  注意:当数值参与逻辑或运算时,结果为true,会返回第一个为真的值;如果结果为false,会返回第二个为假的值;

JS中的&&和||

1,JS中的&&和||,当出现在条件判断语句中时,例如if,会遵守C语系规则。

2,JS中的&&和||,当初现在赋值语句中时,例如变量赋值、return结果等,会遵循以下规则:

  表达式a && 表达式b :  计算表达式a(也可以是函数)的运算结果,
                      如果为 True, 执行表达式b(或函数),并返回b的结果;
                      如果为 False,返回a的结果;

  表达式a || 表达式b :   计算表达式a(也可以是函数)的运算结果,
                      如果为 Fasle, 执行表达式b(或函数),并返回b的结果;
                      如果为 True,返回a的结果;

例1:

1 let b, c, d;
2 b = true || 0;//b=true;
3 c = false || 0;//c=0;
4 d = 1 || 0;//d=1;

例2:

1 //将数组中布尔值为false的成员转为0
2 Array.from([1, , 2, , 3], (n) => n || 0)
3 // [1, 0, 2, 0, 3]

转载于:https://www.cnblogs.com/guanghe/p/11157201.html

深入理解JS中和||相关推荐

  1. 彻底理解js中this

    相关博文:http://blog.csdn.net/libin_1/article/details/49996815 彻底理解js中this的指向,不必硬背. 首先必须要说的是,this的指向在函数定 ...

  2. 深入理解js的执行机制

    写在前面 javascript在浏览器中被浏览器的js引擎执行解释,从执行上下文的角度分析一下js的执行机制 执行上下文 执行上下文被定义成javascript引擎在处理理解js代码时,所创建的一个动 ...

  3. 【学习笔记】深入理解js原型和闭包(5)——instanceof

    又介绍一个老朋友--instanceof. 对于值类型,你可以通过typeof判断,string/number/boolean都很清楚,但是typeof在判断到引用类型的时候,返回值只有object/ ...

  4. 简单理解js闭包、类型引用....第一章

    js 闭包函数.类型引用.this指向.对象原型链...这些东西让我们对js又爱又恨!js虐我千百遍,我待js如初恋. 很多初学者一开始会觉得这些概念没什么用,导致对这些东西产生一种抵抗力.接下来我们 ...

  5. 理解js中this的指向

    彻底理解js中this的指向 JavaScript 的 this 指向问题深度解析 转载于:https://www.cnblogs.com/jeacy/p/6509616.html

  6. 简单粗暴地理解js原型链–js面向对象编程

    简单粗暴地理解js原型链–js面向对象编程 作者:茄果 链接:http://www.cnblogs.com/qieguo/archive/2016/05/03/5451626.html 原型链理解起来 ...

  7. 深入理解js系列一作用域是什么

    title: 深入理解js系列一作用域是什么? date: 2018-02-06 02:15:59 tags: 深入理解js系列 作用域 categories: JavaScript 作用域是什么? ...

  8. 【学习笔记】深入理解js原型和闭包(11)——执行上下文栈

    继续上文的内容. 执行全局代码时,会产生一个执行上下文环境,每次调用函数都又会产生执行上下文环境.当函数调用完成时,这个上下文环境以及其中的数据都会被消除,再重新回到全局上下文环境.处于活动状态的执行 ...

  9. 理解JS的6种继承方式

    [转]重新理解JS的6种继承方式 写在前面 一直不喜欢JS的OOP,在学习阶段好像也用不到,总觉得JS的OOP不伦不类的,可能是因为先接触了Java,所以对JS的OO部分有些抵触. 偏见归偏见,既然面 ...

  10. 深入理解Js中的this

    深入理解Js中的this JavaScript作用域为静态作用域static scope,但是在Js中的this却是一个例外,this的指向问题就类似于动态作用域,其并不关心函数和作用域是如何声明以及 ...

最新文章

  1. 为什么我的DevOps落地过程跟别人不一样?
  2. 近期活动盘点:俞士纶见面会、2018未来医疗100强论坛、清华校友三创论坛、2018年中国数字政府论坛(12.18-12.21)...
  3. Java JPanel的使用
  4. 高盛想要做华尔街的谷歌
  5. Java面向对象(11)--多态性
  6. 一加到1亿。C语言_可能是今年最难选的2部手机:小米10详细对比一加8T
  7. centos php 版本升级 至5.3 wordpress3.7
  8. 蓝桥杯2017年第八届C/C++省赛B组第三题-承压计算
  9. 傅里叶变换对_复变函数6傅里叶变换
  10. 沉云架路,边缘先锋—中国联通5G边缘先锋团队2020年交付纪实
  11. PopWindow的使用
  12. Dijkstra算法原理
  13. Endless Dice 游戏解析
  14. python数据处理与分析(汇总)
  15. windows 挂载百度网盘/阿里云盘等(网盘变本地硬盘) alist + raidrive
  16. hdmi接口有什么用_路由器USB接口有什么用 路由器USB接口作用介绍【详解】
  17. sql语句关联关系的+号
  18. 迅睿cms,迅睿cms程序系统,迅睿cms网站优化
  19. 卸载计算机更新程序包,Win7清除Win10更新安装包的方法
  20. 编程题解析-发型糟糕的一天

热门文章

  1. kettle查询mysql获取uuid_java中调用kettle转换文件
  2. 常用shell命令(未完待续)
  3. 设计模式之——动态代理模式
  4. eclipse调试linux内核,Ubuntu下使用Eclipse+CDT+UML调试linux内核
  5. SuperPoint学习(一)
  6. 各种排序算法稳定性的探讨
  7. MySQL 是如何解决幻读的
  8. C++ 中的深拷贝与浅拷贝
  9. @spoj - lcs2@ Longest Common Substring II
  10. 04号团队-团队任务3:每日立会(2018-11-28)