写了这么多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:

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

例2:

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

最新文章

  1. 用 Jenkins 打包 iOS
  2. mvc5 错误页如何定义
  3. Android Activity界面切换添加动画特效
  4. 十一、mysql输入安全
  5. Js5中基本类型
  6. AndroidStudio1.4 manifest 中注册Activity时的错误提示解决办法
  7. OSG显示文字——自定义显示文字函数
  8. poj 1466 Girls and Boys (最大独立集)
  9. Android内核驱动程序的编写和编译过程
  10. [bzoj3196]Tyvj 1730 二逼平衡树——线段树套平衡树
  11. iOS项目之模拟请求数据
  12. CSS3特效----图片动态提示效果
  13. (转载)VB 查询Oracle中blob类型字段,并且把blob中的图片以流的方式显示在Image上
  14. sql的优化30条
  15. 使用systemback制作Ubuntu自定义系统镜像和系统备份(抄)
  16. [再寄小读者之数学篇](2014-06-23 积分不等式 [中国科学技术大学2013年高等数学B 考研试题])
  17. Archlinux配置~小米笔记本Air 13.3英寸版本
  18. android构建过程
  19. Delphi调用java so
  20. 用SoapUI 测试Web Service

热门文章

  1. docker及lvs负载
  2. CPNtools 模拟工具适合分析什么样的协议
  3. 迷你商城后台管理系统————stage3项目部署测试汇总
  4. dt二次开发之-url伪静态的自定义
  5. 移动端跨平台应用开发(ios、Android、web)- Flutter 技术
  6. *JavaScript标准参考教程 - 阮一峰
  7. service worker(二)之主页面与service worker通信
  8. C#延迟初始化Lazy<T>
  9. BZOJ 2502 清理雪道(有源汇上下界最小流)
  10. editplus 支持lua语言语法高亮显示