JavaScript 中,变量可以赋予任何类型的值。但是运算符对数据类型是有要求的,如果运算符发现,运算子的类型与预期不符,就会自动转换类型。数据类型除了可以自动转换以外,还可以手动强制转换。
1. 强制转换
强制转换主要指使用Number、String和Boolean三个构造函数,手动将各种类型的值,转换成数字、字符串或者布尔值。
(1) Number函数:强制转换成数值
使用Number函数,可以将任意类型的值转化成数字。
(2)String函数:强制转换成字符串
使用String函数,可以将任意类型的值转化成字符串。
(3) Boolean函数:强制转换成布尔值
使用Boolean函数,可以将任意类型的变量转为布尔值。
2.自动转换
当遇到以下几种情况,JavaScript会自动转换数据类型:
- 不同类型的数据进行互相运算;
- 对非布尔值类型的数据求布尔值;
- 对非数值类型的数据使用一元运算符(即“+”和“-”)。
3. 加法运算符的类型转化
加法运算符(+)需要特别讨论,因为它可以完成两种运算(加法和字符连接),所以不仅涉及到数据类型的转换,还涉及到确定运算类型。