JS在if中的强制类型转换方式


Posted in Javascript onJuly 15, 2018

众所周知,JS在很多情况下会进行强制类型转换,其中,最常见两种是:

1.使用非严格相等进行比较,对==左边的值进行类型转换

2.在if判断时,括号内的值进行类型转换,转化为布尔值

今天,我就来聊一聊JS在if中的强制类型转换。

其实,如果详细要讨论哪些值在if中强制转换为true,哪些值在if中强制转换为false,这很困难,因为,情况太多了。但是,我们可以轻松记住强制类型转换结果,为什么?因为,大多数情况下,都是转换为true,只有四种情况会转换为false。此时,我们只需要记住转换为false的那四种情况就可以了。

强制转换为false的四种情况

在if中进行强制转换为false的情况只有四种,分别是:

1.数字0

2.NaN

3.空字符串

4.null或undefined

很多人会问,为什么null和undefined会在一起?因为,在非严格相等的情况下,null和undefined是相等的。

null == undefined    // true
// 两种写法相等
a == null
a === null || a === undefined

如何判断引用数组和对象是否为空

很多时候,我们会碰上这种情况,即在if中判断数组或对象是否为空。如果直接判断的话,依据之前的理论,不管是不是空数组或对象最后都是true,因为数组或对象会强制转换为true。

判断数组是否为空很简单,只需要访问它的length属性即可。那对象该怎么办?

这里可以使用Object.keys方法对对象属性进行遍历,该方法返回一个包含对象属性的数组,如果数组长度为0,即代表为空。当然,这种情况并不完全严谨,因为,对象可能存在不可枚举属性。

var arr = []
arr.length = 0
var obj = {}
Object.keys(obj).length = 0

总结

以上所述是小编给大家介绍的JS在if中的强制类型转换,希望对大家有所帮助,如果对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的

Javascript 相关文章推荐
js定时器的使用(实例讲解)
Jan 06 Javascript
js replace替换所有匹配的字符串
Feb 13 Javascript
jquery实现不同大小浏览器使用不同的css样式表的方法
Apr 02 Javascript
jquery带下拉菜单和焦点图代码分享
Aug 24 Javascript
js图片轮播效果实现代码
Apr 18 Javascript
浅谈js中的延迟执行和定时执行
May 31 Javascript
JavaScript学习小结之使用canvas画“哆啦A梦”时钟
Jul 24 Javascript
Bootstrap CDN和本地化环境搭建
Oct 26 Javascript
Element-UI踩坑之Pagination组件的使用
Oct 29 Javascript
angular6的table组件开发的实现示例
Dec 26 Javascript
详解vue在项目中使用百度地图
Mar 26 Javascript
小程序富文本提取图片可放大缩小
May 26 Javascript
微信小程序form表单组件示例代码
Jul 15 #Javascript
微信小程序仿朋友圈发布动态功能
Jul 15 #Javascript
Bootstrap Table中的多选框删除功能
Jul 15 #Javascript
详解JavaScript 中 if / if...else...替换方式
Jul 15 #Javascript
简述JS控制台的使用
Jul 15 #Javascript
简述JS浏览器的三种弹窗
Jul 15 #Javascript
Vue路由钩子之afterEach beforeEach的区别详解
Jul 15 #Javascript
You might like
生成静态页面的PHP类
2006/11/25 PHP
php常用hash加密函数
2014/11/22 PHP
通过js动态操作table(新增,删除相关列信息)
2012/05/23 Javascript
JQuery获取表格数据示例代码
2014/05/26 Javascript
JavaScript常用基础知识强化学习
2015/12/09 Javascript
JavaScript程序中的流程控制语句用法总结
2016/05/23 Javascript
jQuery事件绑定方法学习总结(推荐)
2016/11/21 Javascript
JS日程管理插件FullCalendar简单实例
2017/02/07 Javascript
node.js实现登录注册页面
2017/04/08 Javascript
vue下history模式刷新后404错误解决方法
2018/08/18 Javascript
微信{"errcode":48001,"errmsg":"api unauthorized, hints: [ req_id: 1QoCla0699ns81 ]"}
2018/10/12 Javascript
vue-cli3 从搭建到优化的详细步骤
2019/01/20 Javascript
Vue 监听元素前后变化值实例
2020/07/29 Javascript
[49:30]DOTA2-DPC中国联赛正赛 Dragon vs Dynasty BO3 第二场 3月4日
2021/03/11 DOTA
python解析json实例方法
2013/11/19 Python
python快速查找算法应用实例
2014/09/26 Python
Python实现测试磁盘性能的方法
2015/03/12 Python
python中字典dict常用操作方法实例总结
2015/04/04 Python
python-opencv在有噪音的情况下提取图像的轮廓实例
2017/08/30 Python
python获取服务器响应cookie的实例
2018/12/28 Python
python3.6编写的单元测试示例
2019/08/17 Python
Django添加bootstrap框架时无法加载静态文件的解决方式
2020/03/27 Python
python爬虫基础知识点整理
2020/06/02 Python
Python3与fastdfs分布式文件系统如何实现交互
2020/06/23 Python
使用Python爬取Json数据的示例代码
2020/12/07 Python
pip 20.3 新版本发布!即将抛弃 Python 2.x(推荐)
2020/12/16 Python
印度尼西亚在线时尚购物网站:ZALORA印尼
2016/08/02 全球购物
Vrbo西班牙:预订您的度假公寓(公寓、乡村房屋…)
2020/04/27 全球购物
活动邀请函范文
2014/01/19 职场文书
团结演讲稿范文
2014/05/23 职场文书
小学学校评估方案
2014/06/08 职场文书
先进典型发言材料
2014/12/30 职场文书
给上级领导的感谢信
2015/01/22 职场文书
2015年教师见习期工作总结
2015/05/20 职场文书
校园文化艺术节开幕词
2016/03/04 职场文书
MySQL导致索引失效的几种情况
2022/06/25 MySQL