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