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 相关文章推荐
getAsDataURL在Firefox7.0下无法预览本地图片的解决方法
Nov 15 Javascript
jquery自动切换tabs选项卡的具体实现
Dec 24 Javascript
jquery attr方法获取input的checked属性问题
May 26 Javascript
jQuery+ajax实现鼠标单击修改内容的思路
Jun 29 Javascript
js使用for循环及if语句判断多个一样的name
Sep 09 Javascript
jQuery实现友好的轮播图片特效
Jan 12 Javascript
jquery插件jquery.nicescroll实现图片无滚动条左右拖拽的方法
Aug 10 Javascript
基于JavaScript实现单选框下拉菜单添加文件效果
Jun 26 Javascript
微信小程序中多个页面传参通信的学习与实践
May 05 Javascript
webpack配置之后端渲染详解
Oct 26 Javascript
axios发送post请求springMVC接收不到参数的解决方法
Mar 05 Javascript
JS如何实现网站中PC端和手机端自动识别并跳转对应的代码
Jan 08 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
一个ORACLE分页程序,挺实用的.
2006/10/09 PHP
php数组排序usort、uksort与sort函数用法
2014/11/17 PHP
PHP session文件独占锁引起阻塞问题解决方法
2015/05/12 PHP
PHP与服务器文件系统的简单交互
2016/10/21 PHP
PHP设计模式之适配器模式(Adapter)原理与用法详解
2019/12/12 PHP
Dom在ajax技术中的作用说明
2010/10/25 Javascript
40个有创意的jQuery图片、内容滑动及弹出插件收藏集之一
2011/12/31 Javascript
JS 作用域与作用域链详解
2015/04/07 Javascript
yui3的AOP(面向切面编程)和OOP(面向对象编程)
2015/05/01 Javascript
JS拖拽插件实现步骤
2015/08/03 Javascript
js实现表单检测及表单提示的方法
2015/08/14 Javascript
底部悬浮通栏可以关闭广告位的实现方法
2016/06/01 Javascript
angular源码学习第一篇 setupModuleLoader方法
2016/10/20 Javascript
js判断手机系统是android还是ios
2017/03/07 Javascript
纯js代码生成可搜索选择下拉列表的实例
2018/01/11 Javascript
vue中锚点的三种方法
2018/07/06 Javascript
Iview Table组件中各种组件扩展的使用
2018/10/20 Javascript
js 对象使用的小技巧实例分析
2019/11/08 Javascript
js回调函数原理与用法案例分析
2020/03/04 Javascript
vue的webcamjs集成方式
2020/11/16 Javascript
Python实现网络端口转发和重定向的方法
2016/09/19 Python
python中从str中提取元素到list以及将list转换为str的方法
2018/06/26 Python
Python numpy数组转置与轴变换
2019/11/15 Python
基于python读取.mat文件并取出信息
2019/12/16 Python
在pycharm中使用matplotlib.pyplot 绘图时报错的解决
2020/06/01 Python
解决Pymongo insert时会自动添加_id的问题
2020/12/05 Python
python中append函数用法讲解
2020/12/11 Python
Java TransactionAPI (JTA) 主要包含几部分
2012/12/07 面试题
创业计划书如何吸引他人眼球
2014/01/10 职场文书
秋季运动会活动方案
2014/02/05 职场文书
第一批党的群众路线教育实践活动工作总结
2014/03/03 职场文书
入党积极分子培养人意见
2015/06/02 职场文书
电影焦裕禄观后感
2015/06/09 职场文书
小学数学教师研修感悟
2015/11/18 职场文书
Python破解极验滑动验证码详细步骤
2021/05/21 Python
Linux在两个服务器直接传文件的操作方法
2022/08/05 Servers