对存在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 获取滚动条高度示例代码
Oct 24 Javascript
JS实现的Select三级下拉菜单代码
Aug 20 Javascript
jQuery插件imgPreviewQs实现上传图片预览
Jan 15 Javascript
js 轮播效果实例分享
Dec 28 Javascript
Vue响应式添加、修改数组和对象的值
Mar 20 Javascript
详解微信小程序设置底部导航栏目方法
Jun 29 Javascript
轻量级JS Cookie插件js-cookie的使用方法
Mar 22 Javascript
浅谈vue项目如何打包扔向服务器
May 08 Javascript
vue中使用sessionStorage记住密码功能
Jul 24 Javascript
vue视图不更新情况详解
May 16 Javascript
Vue可自定义tab组件用法实例
Oct 24 Javascript
JavaScript+HTML实现学生信息管理系统
Apr 20 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
《星际争霸》各版本雷兽特点图文解析 雷兽不同形态一览
2020/03/02 星际争霸
基于HTTP长连接的"服务器推"技术的php 简易聊天室
2009/10/31 PHP
从手册去理解分析PHP session机制
2011/07/17 PHP
解析:php调用MsSQL存储过程使用内置RETVAL获取过程中的return值
2013/07/03 PHP
yii2.0数据库迁移教程【多个数据库同时同步数据】
2016/10/08 PHP
Zend Framework常用校验器详解
2016/12/09 PHP
PHP微商城开源代码实例
2019/03/27 PHP
PHP反射实际应用示例
2019/04/03 PHP
IE与FireFox的JavaScript兼容问题解决办法
2013/12/31 Javascript
使用JavaScript的AngularJS库编写hello world的方法
2015/06/23 Javascript
jQuery+css实现的切换图片功能代码
2016/01/27 Javascript
JQuery EasyUI Layout 在from布局自适应窗口大小的实现方法
2016/05/28 Javascript
轻松掌握JavaScript享元模式
2016/08/27 Javascript
js实现自定义进度条效果
2017/03/15 Javascript
基于require.js的使用(实例讲解)
2017/09/07 Javascript
vue小白入门教程
2018/04/02 Javascript
element-ui 关于获取select 的label值方法
2018/08/24 Javascript
electron-vue利用webpack打包实现多页面的入口文件问题
2019/05/12 Javascript
JS实现点星星消除小游戏
2020/03/24 Javascript
JS sort方法基于数组对象属性值排序
2020/07/10 Javascript
[12:29]《一刀刀一天》之DOTA全时刻19:蝙蝠骑士田伯光再度不举
2014/06/10 DOTA
Python随机生成信用卡卡号的实现方法
2015/05/14 Python
Python对象转JSON字符串的方法
2016/04/27 Python
Python中常用信号signal类型实例
2018/01/25 Python
Python爬虫将爬取的图片写入world文档的方法
2018/11/07 Python
如何使用pyinstaller打包32位的exe程序
2019/05/26 Python
Django DRF认证组件流程实现原理详解
2020/08/17 Python
互动出版网:专业书籍
2017/03/21 全球购物
英国计算机产品零售商:Novatech(定制个人电脑、笔记本电脑、工作站和服务器)
2018/01/28 全球购物
PatPat香港:婴童服饰和亲子全家装在线购物
2020/09/27 全球购物
SQL面试题
2013/12/09 面试题
同事吵架检讨书
2014/02/05 职场文书
幽默自我介绍演讲稿
2014/08/21 职场文书
市场总监岗位职责
2015/02/11 职场文书
Python使用random模块实现掷骰子游戏的示例代码
2021/04/29 Python
Python实现socket库网络通信套接字
2021/06/04 Python