bool值转换

数据类型 bool值转化
undefined undefined 转化为 false
Object null 转化为false,其他为 true
Boolean false 转化为 false,true 转化为 true
Number 0,NaN 转化为false,其他为 true
String "" 转化为 false,其他为 true

"&&" : 遇到“假”爱就返回

javascript中“&&”运算符运算法则如下:

返回遇到的第一个假值(null, undefined, NaN, false, '', 0)或者最后一个值。
如果&&左侧表达式的值为真值,则返回右侧表达式的值;否则返回左侧表达式的值。多个&&表达式一起运算时,返回第一个表达式运算为false的值,如果所有表达式运算结果都为true,则返回最右侧一个表达式运算的值。

const aa = {'name': 'xx'};
const bb = aa && aa.age; // bb输出为undefined;
let cc;
const dd = cc && cc.name ? cc.name : undefined; // dd输出为undefined
const dd = cc && cc.name; // dd输出为undefined;
上面两句代码的执行结果是一样的,之前写代码的时候一直用上面的方式,但是发现有些单测覆盖不到,导致单测分支覆盖率很低,换下面的方式就可以很好的解决这个问题,这两句的效果是一样的。

"||" :遇到“真”爱就返回

javascript中"||"运算符的运算法则如下:

返回遇到的第一个真值或者最后一个值。
如果"||"左侧表达式的值为真值,则返回左侧表达式的值;否则返回右侧表达式的值。多个"||"表达式一起运算时,返回第一个表达式运算结果为true的值,如果所有表达式运算结果都为false,否则返回最右侧的表达式的值。

const aa = false || 'xx'; // aa输出为'xx'

"!!"

"!!"将表达式进行强制转化为bool值的运算,运算结果为true或者false。

const aa = 'xx';
const bb = !!aa; // bb输出为true
const cc = !!(NaN || undefined || null || 0 || '' ); // cc为false;

我的博客即将搬运同步至腾讯云+社区,邀请大家一同入驻:https://cloud.tencent.com/dev...

最新文章

  1. CSS 巧用 :before和:after
  2. PDA 收银系统PDA手持打印扫描枪 销售开单 收银 扫描打印一体机
  3. 响应式图片srcset学习
  4. iptables Data filtering详解
  5. 基于微软平台IIS/ASP.NET开发的大型网站有哪些?
  6. JavaScript:JSON
  7. JAVA软件开发职责
  8. Can't connect to local MySQL Server throught socket '/var/run/mysqld/mysqld.sock'(2)
  9. GIT: 远程建立一个仓库,然后复制到本地
  10. Python面向对象OOP
  11. 又是干货,这个春节感觉吃饱了。各方面---RHCS集群理论
  12. [转]numpy中的matrix矩阵处理
  13. git命令小结
  14. Linux成为云计算平台的主流操作系统
  15. Learning-Python【17】:包的导入使用
  16. Django01-Django基础
  17. Hadoop2.6.5集群搭建
  18. VMware安装RHEL5.5后修改分辨率设置
  19. Linux内核中_IO,_IOR,_IOW,_IOWR宏的用法
  20. .NetCore下使用Prometheus实现系统监控和警报 (一)介绍【译】

热门文章

  1. MongoDB聚合查询及Python连接MongoDB操作
  2. python如何data格式和时间戳的转换
  3. 自定义 serializers.ValidationError 的错误返回
  4. 面试官:我们来聊一聊Redis吧,你了解多少就答多少
  5. js-表格
  6. vue路由传参丢失问题
  7. BBS项目分布搭建五(评论相关功能实现)
  8. 6月5日 python学习总结 jQuery (二)
  9. 《浅谈产品》——加油APP的平台是如何做的
  10. 分布式锁redis