对存在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 相关文章推荐
jquery实现的一个导航滚动效果具体代码
May 27 Javascript
JQuery设置文本框和密码框得到焦点时的样式
Aug 30 Javascript
javascript 数字格式化输出的实现代码
Dec 10 Javascript
jquery获取一个元素下面相同子元素的个数代码
Jul 31 Javascript
angularJS提交表单(form)
Feb 09 Javascript
基于Node的React图片上传组件实现实例代码
May 10 Javascript
Layui table 组件的使用之初始化加载数据、数据刷新表格、传参数
Sep 11 Javascript
node 利用进程通信实现Cluster共享内存
Oct 27 Javascript
详解jQuery中的isPlainObject()使用方法
Feb 27 jQuery
vue-cli初始化项目中使用less的方法
Aug 09 Javascript
jQuery实现的移动端图片缩放功能组件示例
May 01 jQuery
关于vue属性使用和不使用冒号的区别说明
Oct 22 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/08/08 PHP
PHP读取RSS(Feed)简单实例
2014/06/12 PHP
学习php设计模式 php实现命令模式(command)
2015/12/08 PHP
php扩展开发入门demo示例
2019/09/23 PHP
Yii Framework框架开发微信公众平台示例
2020/04/26 PHP
使用jQuery简化Ajax开发 Ajax开发入门
2009/10/14 Javascript
window.location.reload()方法刷新页面弹出要再次显示该网页对话框
2013/04/24 Javascript
jquery ajax方式直接提交整个表单核心代码
2013/08/15 Javascript
Javascript简单实现可拖动的div
2013/10/22 Javascript
window.open 以post方式传递参数示例代码
2014/02/27 Javascript
选择复选框按钮置灰否则按钮可用
2014/05/22 Javascript
JavaScript数组函数unshift、shift、pop、push使用实例
2014/08/27 Javascript
jQuery实现提交按钮点击后变成正在处理字样并禁止点击的方法
2015/03/24 Javascript
js时间戳转为日期格式的方法
2015/12/28 Javascript
JavaScript实现复制内容到粘贴板代码
2016/03/31 Javascript
bootstrap和jQuery.Gantt的css冲突 如何解决
2016/05/29 Javascript
详解react如何在组件中获取路由参数
2017/06/15 Javascript
es6系列教程_ Map详解以及常用api介绍
2017/09/25 Javascript
小程序指纹验证的实现代码
2018/12/04 Javascript
element-ui组件table实现自定义筛选功能的示例代码
2019/03/15 Javascript
VUE组件中的 Drawer 抽屉实现代码
2019/08/06 Javascript
详解vue beforeRouteEnter 异步获取数据给实例问题
2019/08/09 Javascript
layer.open回调获取弹出层参数的实现方法
2019/09/10 Javascript
vue打包通过image-webpack-loader插件对图片压缩优化操作
2020/11/12 Javascript
python中split方法用法分析
2015/04/17 Python
Python语言描述连续子数组的最大和
2018/01/04 Python
Python Numpy库安装与基本操作示例
2019/01/08 Python
Python面向对象程序设计类的封装与继承用法示例
2019/04/12 Python
Python3.5集合及其常见运算实例详解
2019/05/01 Python
django自带serializers序列化返回指定字段的方法
2019/08/21 Python
python邮件中附加文字、html、图片、附件实现方法
2021/01/04 Python
CSS3的常见transformation图形变化用法小结
2016/05/13 HTML / CSS
图库照片、免版税图片、矢量艺术、视频片段:Depositphotos
2019/08/02 全球购物
医院义诊活动总结
2014/07/04 职场文书
离婚协议书范文
2015/01/26 职场文书
Axios取消重复请求的方法实例详解
2021/06/15 Javascript