对存在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的实现简单的表格中增加或删除下一行
Aug 01 Javascript
jQuery学习之prop和attr的区别示例介绍
Nov 15 Javascript
JS嵌套函数调用上下文的问题解决
Mar 26 Javascript
jQuery实现新消息闪烁标题提示的方法
Mar 11 Javascript
JS获取及设置TextArea或input文本框选择文本位置的方法
Mar 24 Javascript
JavaScript中setUTCFullYear()方法的使用简介
Jun 12 Javascript
JS实现自动定时切换的简洁网页选项卡效果
Oct 13 Javascript
vue webpack打包后图片路径错误的完美解决方法
Dec 07 Javascript
vue-cli+axios实现文件上传下载功能(下载接收后台返回文件流)
May 10 Javascript
详解wepy开发小程序踩过的坑(小结)
May 22 Javascript
vue(2.x,3.0)配置跨域代理
Nov 27 Javascript
vue基础知识--axios合并请求和slot
Jun 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中操作MySQL数据库的一些要注意的问题
2006/10/09 PHP
PHP 5.0对象模型深度探索之类的静态成员
2008/03/27 PHP
PHP获取redis里不存在的6位随机数应用示例【设置24小时过时】
2017/06/07 PHP
PHP递归实现快速排序的方法示例
2017/12/18 PHP
JavaScript 对Cookie 操作的封装小结
2009/12/31 Javascript
JQuery的Validation插件中Remote验证的中文问题
2010/07/26 Javascript
提交表单时执行func方法实现代码
2013/03/17 Javascript
Jquery 类网页微信二维码图块滚动效果具体实现
2013/10/14 Javascript
JS实现仿Windows7风格的网页右键菜单效果代码
2015/09/11 Javascript
jquery ezUI 双击行记录弹窗查看明细的实现方法
2016/06/01 Javascript
Three.js快速入门教程
2016/09/09 Javascript
vue-resource 拦截器(interceptor)的使用详解
2017/07/04 Javascript
基于JavaScript实现淘宝商品广告效果
2017/08/10 Javascript
JS运动特效之链式运动分析
2018/01/24 Javascript
jquery+ajax实现上传图片并显示上传进度功能【附php后台接收】
2019/06/06 jQuery
JavaScript中callee和caller的区别与用法实例分析
2019/06/28 Javascript
JavaScript实现图片上传并预览并提交ajax
2019/09/30 Javascript
Vue.js组件通信之自定义事件详解
2019/10/19 Javascript
vue scroll滚动判断的实现(是否滚动到底部、滚动方向、滚动节流、获取滚动区域dom元素)
2020/06/11 Javascript
[05:15]DOTA2英雄梦之声_第16期_灰烬之灵
2014/06/21 DOTA
用Python shell简化开发
2018/08/08 Python
Python学习笔记之抓取某只基金历史净值数据实战案例
2019/06/03 Python
python requests使用socks5的例子
2019/07/25 Python
numpy:np.newaxis 实现将行向量转换成列向量
2019/11/30 Python
Python计算矩阵的和积的实例详解
2020/09/10 Python
安装并免费使用Pycharm专业版(学生/教师)
2020/09/24 Python
通过代码实例了解Python3编程技巧
2020/10/13 Python
博朗(Braun)俄罗斯官方商店:德国小家电品牌
2019/09/24 全球购物
Zalando Lounge瑞士:时尚与生活方式购物俱乐部
2020/03/12 全球购物
在C++ 程序中调用被C 编译器编译后的函数,为什么要加extern "C"
2014/08/09 面试题
优秀教师的感人事迹
2014/02/04 职场文书
网络宣传方案
2014/03/15 职场文书
学生自我鉴定格式及范文
2014/09/16 职场文书
党员个人剖析材料2014
2014/10/08 职场文书
孔子观后感
2015/06/08 职场文书
详解python的内存分配机制
2021/05/10 Python