数据类型的隐式转换
- JavaScript属于弱类型语言
变量在声明时不需要指定数据类型
变量由赋值操作确定数据类型 - 不同类型数据在计算过程中会自动进行转换
加法:
Number + String => String
Number + Boolean => true 转换为 1,false转换为 0
String + Boolean => 布尔值转换为字符串true或者false
Boolean + Boolean => 布尔值转换为0或者1减法:
Number - String => String转为Number,不能转Number计算结果则返回NaN
Number - Boolean => true 转换为 1,false转换为 0
String - Boolean = > String转为Number,不能转Number计算结果则返回NaN
Boolean - Boolean => 布尔值转换为0或者1乘法:
同上 ↑除法:
同上 ↑
// 定义不同数据类型的变量
let s1 = 's'
let n1 = 1
let b1 = true
let b2 = false
// 测试隐式转换
alert(s1 + n1) // s1
alert(s1 + b1) // strue
alert(n1 + b1) // 2
alert(b1 + b2) // 1
....
数据类型的强制转换
JS 类型转换一览表.png
// 补充: 字符串为数字的可以通过 "+" 进行强制转换
+"5" = 5
// 双等号 == 也会进行隐式转换 全等号 === 则不会进行隐式转换
'22' == 22