js中逻辑或|| 和 逻辑与&& 和 逻辑非! 和 !!

先讲讲  逻辑与 &&:

先清楚一点: && 返回的不一定是boolean 类型。

个人总结的经验是:不需要去记忆太多的规则,&& 简单理解就是“找假的”,从左至右,依次隐式转换为boolean类型后判断是否为false,

是的话就返回该值(返回的是原类型)。如果到最后一个值隐式转换后还是true,则返回最后一个值(返回的也是原类型)。

关于隐式转换,0、‘’、null、false、undefined、NaN 转换后为 false。

例如:

var a = 1;
var b = 'abc';
var c = a/b;
var d;

console.log(false && 1); //false
console.log(null && d); //null
console.log(d && null); //undefined
console.log(1 && null && d); //null
console.log(1 && d && null); //undefined
console.log(1 && null && c); //null
console.log(1 && c && null); //NaN
console.log(c && d && null); //NaN
console.log(0 && c && d && null); //0
console.log(1 && false && 2); //false
console.log(1 && 0 && false && 2); //0

console.log(1 && "s" && 3); //3


再讲讲  逻辑或||:

|| 简单理解就是“找的”,从左至右,依次隐式转换为boolean类型后判断是否为true,

是的话就返回该值(返回的是原类型)。如果到最后一个值隐式转换后还是false,则返回最后一个值(返回的也是原类型)。

例如:

console.log("" || null);  //null
console.log(0 || "" || NaN);  //NaN
console.log(0 || undefined); //undefined
console.log(0 || undefined || 0); //0


console.log(0 || 1 || undefined ); //1


逻辑非 !:

返回的是隐式转换后的boolean类型的值。

例如:!2 //false


!! :

第一个! 表示逻辑非,第二个! 再取反。(相当于隐式转换后的结果)。

例如:!!2 //true

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值