对存在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 相关文章推荐
filters.revealTrans.Transition使用方法小结
Aug 19 Javascript
js修改input的type属性及浏览器兼容问题探讨与解决
Jan 23 Javascript
JS获取后台Cookies值的小例子
Mar 04 Javascript
jQuery中first()方法用法实例
Jan 06 Javascript
jQuery实现右侧显示可向左滑动展示的深色QQ客服效果代码
Oct 23 Javascript
JavaScript中setter和getter方法介绍
Jul 11 Javascript
yarn与npm的命令行小结
Oct 20 Javascript
js 监控iframe URL的变化实例代码
Jul 12 Javascript
Angular17之Angular自定义指令详解
Jan 21 Javascript
AngularJS创建一个上传照片的指令实例代码
Feb 24 Javascript
微信小程序自定义组件的实现方法及自定义组件与页面间的数据传递问题
Oct 09 Javascript
如何在JavaScript中使用localStorage详情
Feb 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 存储文本换行实现方法
2010/01/05 PHP
Thinkphp5.0框架视图view的模板布局用法分析
2019/10/12 PHP
javascript实现文本域写入字符时限定字数
2014/02/12 Javascript
jQuery焦点图切换简易插件制作过程全纪录
2014/08/27 Javascript
jQuery实现下滑菜单导航效果代码
2015/08/25 Javascript
jQuery实现的网页竖向菜单效果代码
2015/08/26 Javascript
JS实现自动固定顶部的悬浮菜单栏效果
2015/09/16 Javascript
谈谈我对JavaScript中typeof和instanceof的深入理解
2015/12/25 Javascript
javascript如何实现360度全景照片问题汇总
2016/04/04 Javascript
Angularjs结合Bootstrap制作的一个TODO List
2016/08/18 Javascript
js实现漫天星星效果
2017/01/19 Javascript
js css3实现图片拖拽效果
2017/03/04 Javascript
vue引入swiper插件的使用实例
2017/07/19 Javascript
vue综合组件间的通信详解
2017/11/06 Javascript
JS加密插件CryptoJS实现AES加密操作示例
2018/08/16 Javascript
JavaScript定时器设置、使用与倒计时案例详解
2019/07/08 Javascript
jQuery实现查看图片功能
2020/12/01 jQuery
[03:03]DOTA2 2017国际邀请赛开幕战队入场仪式
2017/08/09 DOTA
详解Python3中的Sequence type的使用
2015/08/01 Python
Python实现Mysql数据库连接池实例详解
2017/04/11 Python
Python实现的绘制三维双螺旋线图形功能示例
2018/06/23 Python
Python爬虫爬取新浪微博内容示例【基于代理IP】
2018/08/03 Python
python2.7和NLTK安装详细教程
2018/09/19 Python
使用OpenCV-python3实现滑动条更新图像的Canny边缘检测功能
2019/12/12 Python
解决Python logging模块无法正常输出日志的问题
2020/02/21 Python
浅谈python3 构造函数和析构函数
2020/03/12 Python
canvas烟花特效锦集
2018/01/17 HTML / CSS
Skyscanner阿联酋:全球领先的旅游搜索平台
2017/11/25 全球购物
Fresh馥蕾诗英国官网:法国LVMH集团旗下高端天然护肤品牌
2018/11/01 全球购物
LN-CC美国:伦敦时尚生活的缩影
2019/02/19 全球购物
EJB包括(SessionBean,EntityBean)说出他们的生命周期,及如何管理事务的?
2013/02/17 面试题
班主任寄语大全
2014/04/04 职场文书
化工操作工岗位职责
2014/04/29 职场文书
大学生个人求职信
2014/06/02 职场文书
2014年大学生预备党员思想汇报1000字
2014/09/13 职场文书
哈姆雷特读书笔记
2015/06/29 职场文书