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