数据类型的转化 ---- 转化不是等于,而是从一种数据类型,变成另一种数据类型,数值也会发生变化。
自动转换(隐式转换) — 计算机自动执行的,只有在特定情况下,才会执行转化。
1、 其他类型转化为布尔类型 — 一般在判断中
false : 0 “” undefined null NaN
true : 除上面的5种外,其他都转化为true
2、其他类型转化为字符串 — 字符串拼接时
布尔类型 true --- 'true' false --- 'false'
undefined --- 'undefined'
null --- 'null'
数值 --- '字符串形式的数值'
数组 --- 不要[],只要内容,转化为字符串
对象 --- [object Object]
函数 --- 将所有代码转化为字符串
3、 其他类型转化为数值 — 数学运算时
布尔类型 true --- 1 false --- 0
undefined --- NaN
null --- 0
数组 --- NaN
对象 --- NaN
函数 --- NaN
字符串 --- 纯数值内容,转化为对应的数值,包括 整数,浮点数,科学计数法(有不符合数值规范的内容,转化为 NaN)
强制转换(显式转换) — 程序员有意操作,转化原则与自动转化原则相同,不会改变存储的值。
1、强制转化为布尔类型
- Boolean(数值/变量)
2、强制转化为字符串类型
- 方法一: String(数值/变量)
- 方法二:变量.toString(进制)(将数值转化为对应进制的字符串,进制范围 2 - 36)
- 方法三:任意类型数值 + “”
3、强制转化为数值
- 方法一:Number(数值/变量)
- 方法二:parseInt(数值/变量):从左起获取 内容 的整数部分
- 方法三: parseFloat(数值/变量):从左起获取内容的浮点数部分,如果是整数,也会获取整数的内容
总结:
- 带有 + 号,只要任意一侧是字符串,就执行字符串拼接。若整个表达式都没有字符串,就执行加法运算,其它非数值类型的数据会自动转换为数值类型。
- 若变量不能转换, 它仍是一个数字,值为NaN。