隐式转换
一、隐式转换为数字类型
-
算数运算符和比较运算符中会隐式转换为数字类型(相当于调用Number())
-
纯数字字符串直接转换为对应数字(或只有一个值的数组,进行Number()转换的时候会视为第一个值的字符串)
-
+'123' // 123
+['123'] // 123
-
-
转换为1:true, [1],['1']
-
转换为0:false、null、‘’空字符串、‘ ’空白字符串、[]、[''空字符串]、[空白字符串]
-
转换为NaN:undefined、非空非纯字符串
-
Infinity转换为Infinity
二、隐式转换为布尔值
-
逻辑运算中,或者将数据作为条件分支语句(if / while / do while)的判断条件时
-
逻辑运算的时候会先进行条件判断然后返回的是原值
-
-
转换为false:NaN、0、‘’空字符串、null、undefined
-
转换为true:非0、非NaN、非空字符串、数组与对象
-
这里的空数组与只有一个值的数组都看为是true
-