深入理解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:

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值