一、基本类型转换
1、数字转字符串
let num = 3; let str = num.toString(); console.log(typeof str); // string
2、字符串转数字
let str = "3"; let num = Number(str); console.log(typeof num); // number
3、布尔值转换为数字
let bool = true; let num = Number(bool); // 1 bool = false; num = Number(bool); // 0
4、数字转布尔值
let num = 0; let bool = Boolean(num); // false num = 1; bool = Boolean(num); // true
二、对象类型转换
1、对象转字符串
let obj = {key: "value"}; let str = JSON.stringify(obj); console.log(typeof str); // string
2、字符串转对象
let str = '{"key": "value"}'; let obj = JSON.parse(str); console.log(typeof obj); // object
3、对象转数字
let obj = {key: "value"}; let num = Number(obj); // NaN
4、数字转对象
let num = 123; let obj = Object(num); console.log(obj); // Number {123}
三、隐式类型转换
1、数字与字符串拼接
let num = 1; let str = "2"; let newStr = num + str; console.log(typeof newStr); // string
2、布尔值作为数字使用
let bool = true; let num = bool + 1; console.log(num); // 2
3、null、undefined转换
let num = null; console.log(typeof num); // object let num2; console.log(num2); // undefined let num3 = num2 + 1; console.log(num3); // NaN
四、显示类型转换
1、字符串转数字
let str = "3"; let num = parseInt(str); console.log(typeof num); // number str = "3.5"; num = parseFloat(str); console.log(num); // 3.5
2、数字转字符串
let num = 3; let str = num.toString(); console.log(typeof str); // string
3、强制转换
let num = 3; let str = String(num); console.log(typeof str); // string num = Number(str); console.log(typeof num); // number
五、总结
JavaScript的类型转换非常灵活,并且存在很多“坑”,需要我们谨慎使用。在日常开发中,如果出现类型转换的情况,需要注意上述细节,以避免由此产生的问题。