对存在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 相关文章推荐
javascript中的绑定与解绑函数应用示例
Jun 24 Javascript
Jquery增加鼠标中间功能mousewheel的实例代码
Sep 05 Javascript
JavaScript判断变量是否为空的自定义函数分享
Jan 31 Javascript
jquery实现通用的内容渐显Tab选项卡效果
Sep 07 Javascript
基于jQuery的Web上传插件Uploadify使用示例
May 19 Javascript
js实时获取窗口大小变化的实例代码
Nov 18 Javascript
JS实现的RGB网页颜色在线取色器完整实例
Dec 21 Javascript
浅析Vue中method与computed的区别
Mar 06 Javascript
layui table去掉右侧滑动条的实现方法
Sep 05 Javascript
小程序实现上下移动切换位置
Sep 23 Javascript
微信小程序实现吸顶特效
Jan 08 Javascript
js实现文章目录索引导航(table of content)
May 10 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开发文件系统实例讲解
2006/10/09 PHP
给apache2.2加上mod_encoding模块後 php5.2.0 处理url出现bug
2007/04/12 PHP
Laravel 5使用Laravel Excel实现Excel/CSV文件导入导出的功能详解
2017/10/11 PHP
php中的buffer缓冲区用法分析
2019/05/31 PHP
How to Auto Include a Javascript File
2007/02/02 Javascript
Javascript select控件操作大全(新增、修改、删除、选中、清空、判断存在等)
2008/12/19 Javascript
自己动手制作jquery插件之自动添加删除行功能介绍
2011/10/14 Javascript
file模式访问网页时iframe高度自适应解决方案
2013/01/16 Javascript
javascript跨域方法、原理以及出现问题解决方法(详解)
2015/08/06 Javascript
nodejs和C语言插入mysql数据库乱码问题的解决方法
2017/04/14 NodeJs
JavaScript实现京东购物放大镜和选项卡效果的方法分析
2018/07/05 Javascript
解决vue项目nginx部署到非根目录下刷新空白的问题
2018/09/27 Javascript
layui table单元格事件修改值的方法
2019/09/24 Javascript
vue实现修改图片后实时更新
2019/11/14 Javascript
element-ui table行点击获取行索引(index)并利用索引更换行顺序
2020/02/27 Javascript
小程序实现列表展开收起效果
2020/07/29 Javascript
JavaScript 如何在浏览器中使用摄像头
2020/12/02 Javascript
[47:26]完美世界DOTA2联赛 LBZS vs Forest 第二场 11.07
2020/11/09 DOTA
对python使用http、https代理的实例讲解
2018/05/07 Python
Django 后台获取文件列表 InMemoryUploadedFile的例子
2019/08/07 Python
python爬虫 urllib模块反爬虫机制UA详解
2019/08/20 Python
Python Flask框架实现简单加法工具过程解析
2020/06/03 Python
python要安装在哪个盘
2020/06/15 Python
Python全局变量与global关键字常见错误解决方案
2020/10/05 Python
python飞机大战游戏实例讲解
2020/12/04 Python
css3实现文字扫光渐变动画效果的示例
2017/11/07 HTML / CSS
Html5监听手机摇一摇事件的实现
2019/11/07 HTML / CSS
html5 canvas手势解锁源码分享
2020/01/07 HTML / CSS
捷克街头、运动和滑板一站式商店:BoardStar.cz
2019/10/06 全球购物
师范毕业生自荐信
2013/10/17 职场文书
销售文员岗位职责
2013/11/29 职场文书
策划总监岗位职责
2014/02/16 职场文书
二手房购房协议书范本
2014/10/05 职场文书
有关三国演义的读书笔记
2015/06/25 职场文书
评奖评优个人先进事迹材料
2015/11/04 职场文书
python基础之文件操作
2021/10/24 Python