对存在JavaScript隐式类型转换的四种情况的总结(必看篇)


Posted in Javascript onAugust 31, 2017

一般存在四种情况,JavaScript会对变量的数据类型进行转换。

目录

* if中的条件会被自动转为Boolean类型
 * 会被转为false的数据
 * 会被转为true的数据
* 参与+运算都会被隐式的转为字符串
 * 会被转为空字符串的数据
 * 会被转为字符串的数据
 * 会被转为数据类型标记的数据
* 参与*运算都会被隐式的转为数字
 * 会被转为0的数据
 * 会被转为1的数据
 * 会被转为NaN的数据
* == 运算符
 * 为true的时候
 * 为false的时候

if中的条件会被自动转为Boolean类型

会被转为false的数据

if(false) console.log(2333)
if('') console.log(2333)
if(null) console.log(2333)
if(undefined) console.log(2333)
if(NaN) console.log(2333)

会被转为true的数据

if(true) console.log(2333) // 2333
if('test') console.log(2333) // 2333
if([]) console.log(2333) // 2333
if({}) console.log(2333) // 2333

参与+运算都会被隐式的转为字符串

会被转为空字符串的数据

'str-' + '' // str-
'str-' + []

会被转为字符串的数据

'str-' + '1' // "str-1"
'str-' + 1 // "str-1"
'str-' + false // "str-false"
'str-' + true // "str-true"
'str-' + null // "str-null"
'str-' + undefined // "str-undefined"
'str-' + NaN // "str-NaN"

会被转为数据类型标记的数据

'str-' + {} // "str-[object Object]"
'str-' + {a:1} // "str-[object Object]"

参与*运算都会被隐式的转为数字

会被转为0的数据

2 * '' // 0
2 * [] // 0
2 * false // 0

会被转为1的数据

2 * '1' // 2
2 * [1] // 2
2 * true // 2

会被转为NaN的数据

2 * {} // NaN
2 * {a:1} // NaN

== 运算符

为true的时候

0 == false // true
0 == '' // true
0 == '0' // true
0 == [] // true
0 == [0] // true

1 == true // true
1 == '1' // true
1 == [1] // true

[1] == true // true
[] == false // true

为false的时候

0 == {} // false
0 == null // false
0 == undefined // false
0 == NaN // false

1 == {} // false
1 == null // false
1 == undefined // false
1 == NaN // false

[] == [] // false
[1] == [1] // false
[1] == {} // false
[1] == {a:1} // false
[1] == false // false
[1] == null // false
[1] == undefined // false
[1] == NaN // false

{} == {} // false
{a:1} == {a:1} // false

注:空数组[],在+运算符下是转为空字符串'',在*运算符下是转为数字0。但在if语句中,则转为true。

以上这篇对存在JavaScript隐式类型转换的四种情况的总结(必看篇)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
你所要知道JS(DHTML)中的一些技巧
Jan 09 Javascript
解析javascript系统错误:-1072896658的解决办法
Jul 08 Javascript
解决jquery1.9不支持browser对象的问题
Nov 13 Javascript
jquery.hotkeys监听键盘按下事件keydown插件
May 11 Javascript
javascript浏览器窗口之间传递数据的方法
Jan 20 Javascript
javascript显示倒计时控制按钮的简单实现
Jun 07 Javascript
Bootstrap Modal遮罩弹出层(完整版)
Nov 21 Javascript
JS库 Highlightjs 添加代码行号的实现代码
Sep 13 Javascript
Vue组件库发布到npm详解
Feb 17 Javascript
详解微信小程序canvas圆角矩形的绘制的方法
Aug 22 Javascript
JS实现的检验身份证格式并输出出生日期,年龄,性别,出生地示例
May 17 Javascript
JS数据类型(基本数据类型、引用数据类型)及堆和栈的区别分析
Mar 04 Javascript
[js高手之路]HTML标签解释成DOM节点的实现方法
Aug 31 #Javascript
基于JSON数据格式详解
Aug 31 #Javascript
浅谈js中的this问题
Aug 31 #Javascript
js实现图片放大展示效果
Aug 30 #Javascript
详解js几个绕不开的事件兼容写法
Aug 30 #Javascript
JavaScript实现滑动导航栏效果
Aug 30 #Javascript
详解vue-cli 构建Vue项目遇到的坑
Aug 30 #Javascript
You might like
深入PHP获取随机数字和字母的方法详解
2013/06/06 PHP
利用PHPExcel实现Excel文件的写入和读取
2017/04/26 PHP
jquery showModelDialog的使用方法示例详解
2013/11/19 Javascript
javascript中sort()的用法实例分析
2015/01/30 Javascript
12306验证码破解思路分享
2015/03/25 Javascript
jQuery+AJAX实现遮罩层登录验证界面(附源码)
2020/09/13 Javascript
跟我学习javascript的闭包
2015/11/16 Javascript
使用CDN和AJAX加速WordPress中jQuery的加载
2015/12/05 Javascript
JQuery点击行tr实现checkBox选中的简单实例
2016/05/26 Javascript
JavaScript类型系统之布尔Boolean类型详解
2016/06/26 Javascript
AngularJS 中文API参考手册
2016/07/28 Javascript
JavaScript对象引用与赋值实例详解
2017/03/15 Javascript
利用Angular.js编写公共提示模块的方法教程
2017/05/28 Javascript
NodeJS 实现手机短信验证模块阿里大于功能
2017/06/19 NodeJs
ionic 自定义弹框效果
2017/06/27 Javascript
详解Angular5 服务端渲染实战
2018/01/04 Javascript
vue-quill-editor富文本编辑器简单使用方法
2018/09/21 Javascript
微信小程序中使用echarts的实现方法
2019/04/24 Javascript
Django模板继承 extend标签实例代码详解
2019/05/16 Javascript
[44:15]国士无双DOTA2 6.82版本详解(上)
2014/09/28 DOTA
[07:26]2015国际邀请赛第二日TOP10集锦
2015/08/06 DOTA
[04:22]DOTA2大事件之护国神翼
2020/08/14 DOTA
Python中的高级函数map/reduce使用实例
2015/04/13 Python
python实现用户登陆邮件通知的方法
2015/07/09 Python
浅谈python for循环的巧妙运用(迭代、列表生成式)
2017/09/26 Python
Python决策树和随机森林算法实例详解
2018/01/30 Python
python3+PyQt5实现自定义窗口部件Counters
2018/04/20 Python
Python3.6使用tesseract-ocr的正确方法
2018/10/17 Python
浅析Windows 嵌入python解释器的过程
2019/07/26 Python
django 实现celery动态设置周期任务执行时间
2019/11/19 Python
Myprotein丹麦官网:欧洲第一运动营养品牌
2019/04/15 全球购物
Fossil德国官网:化石手表、手袋、珠宝及配件
2019/12/07 全球购物
11月红领巾广播稿
2014/01/17 职场文书
2014年青年教师工作总结
2014/12/17 职场文书
Python获取江苏疫情实时数据及爬虫分析
2021/08/02 Python
Win11怎么进入安全模式?Windows 11进入安全模式的方法
2021/11/21 数码科技