对存在JavaScript隐式类型转换的四种情况的总结

一般存在四种情况,JavaScript会对变量的数据类型进行转换。

目录

  1. if中的条件会被自动转为Boolean类型
  2. 会被转为false的数据 会被转为true的数据
  3. 参与+运算都会被隐式的转为字符串
  4. 会被转为空字符串的数据
  5. 会被转为字符串的数据
  6. 会被转为数据类型标记的数据
  7. 参与*运算都会被隐式的转为数字
  8. 会被转为0的数据
  9. 会被转为1的数据
  10. 会被转为NaN的数据
  11. == 运算符
  12. 为true的时候
  13. 为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。

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值