JavaScript 中的数据类型转换有两种方式:隐式类型转换和显式类型转换。
隐式类型转换 JavaScript 中的隐式类型转换是自动发生的,通常是在执行一些运算操作时发生的。隐式类型转换通常遵循以下规则:
- 字符串加上数字:将数字转换成字符串,然后拼接在一起
- 字符串减去数字:将字符串转换成数字,然后执行减法运算
- 字符串和布尔值进行比较:true转换为1,false转换为0,然后将数字和字符串进行比较
- 字符串和数字进行比较:将字符串转换成数字,然后进行比较
- 字符串和对象进行加法运算:将对象转换成字符串,然后拼接在一起
- 对象和布尔值进行比较:将对象转换成字符串,然后将字符串和布尔值进行比较
显式类型转换 JavaScript 中的显式类型转换是通过一些内置函数或操作符实现的。它们包括:
- Number():将一个值转换成数字类型
- parseInt():将字符串转换成整数类型
- parseFloat():将字符串转换成浮点数类型
- String():将一个值转换成字符串类型
- Boolean():将一个值转换成布尔值类型
- JSON.parse():将一个 JSON 字符串转换成 JavaScript 对象
- JSON.stringify():将一个 JavaScript 对象转换成 JSON 字符串
// 隐式类型转换
let a = "10";
let b = 5;
console.log(a + b); // "105"
console.log(a - b); // 5
let c = true;
let d = "1";
console.log(c + d); // "true1"
console.log(d == true); // true
let e = "2";
console.log(parseInt(e) + b); // 7
console.log(Number(e) + b); // 7
let f = 0;
console.log(Boolean(f)); // false
console.log(Boolean(a)); // true
// 显式类型转换
let g = "3.14";
console.log(typeof(Number(g))); // "number"
let h = "4";
console.log(parseInt(h) + b); // 9
let i = true;
console.log(String(i)); // "true"
let j = {a: 1, b: 2};
console.log(JSON.stringify(j)); // "{"a":1,"b":2}"
let k = '{"a":1,"b":2}';
console.log(JSON.parse(k)); // {a: 1, b: 2}