类型转换
类型转换-字符串
类型转换指将一种数据类型转换为其他类型将其他类型转换为(字符串、数值和布尔值)
转换为字符串
- 调用toString()方法将其他类型转换为字符串
- 由于null和undefined没有toString()方法,所以这两个东西调用toString()时会报错
- 调用String()函数将其他类型转换为字符串
- 对于拥有toString()方法的值调用String()函数时,实际上就是在调用toString()方法
- 对于null,则直接转换为 "null"
- 对于undefined,直接转换为 "undefined"
let a = 10;
console.log(typeof a, a); // number 10
a = a.toString();
console.log(typeof a, a); // string "10"
let b = 33;
b = undefined;
console.log(typeof b, b); // undefined undefined
b = String(b);
console.log(typeof b, b); // string undefined- 调用toString()方法将其他类型转换为字符串
类型转换-数值
使用Number()函数来将其他类型转换为数值
- 转换的情况:
- 字符串:
- 如果字符串是一个合法的数字,则会自动转换为对应的数字
- 如果字符串不是合法数字,则转换为NaN
- 如果字符串是空串或纯空格的字符串,则转换为0
- 布尔值:
- true转换为1,false转换为0
- null 转换为 0
- undefined 转换为 NaN
- 字符串:
- 转换的情况:
专门来将字符串转换为数值的两个方法
- parseInt() 将一个字符串转换为一个整数,解析一个字符串并返回指定基数的十进制整数
- 如果参数不是一个字符串,则将其转换为字符串 (使用 ToString抽象操作)。字符串开头的空白符将会被忽略。
- 解析时,会自左向右读取一个字符串,直到读取到字符串中所有的有效的整数
- parseFloat() 将一个字符串转换为浮点数
- 解析时,会自左向右读取一个字符串,直到读取到字符串中所有的有效的小数
let a = "123";
console.log(typeof a, a); // string "123"
a = Number(a);
console.log(typeof a, a); // number 123
let b = "12.45c456";
console.log(typeof b, b); // string "12.45c456"
c = parseInt(b);
d = parseFloat(b);
console.log(typeof c, c); // number 12
console.log(typeof d, d); // number 12.45- parseInt() 将一个字符串转换为一个整数,解析一个字符串并返回指定基数的十进制整数
类型转换-布尔值
- 使用Boolean()函数来将其他类型转换为布尔值
- 转换的情况:
- 数字:
- 0 和 NaN 转换为false
- 其余是true
- 字符串:
- 空串 转换为 false
- 其余是true
- null和undefined 都转换为false
- 对象:对象都会转换为true
- 数字:
- 所有标识空性的没有的错误的都会转换为false:0、NaN、空串、null、undefined、false
- 转换的情况:
总结
- 转换为字符串
- 显示转换
- toString()
- String()
- 隐式转换
+ ""
- 显示转换
- 转换为数值
- 显示转换
- Number()
- parseInt()
- parseFloat()
- 隐式转换
+
- 显示转换
- 转换为布尔值
- 显示转换
- Boolean()
- 隐式转换
!!
- 显示转换