JavaScript中的类型转换是指将一个数据类型转换为另一种数据类型的过程。在JavaScript中,有两种类型转换:隐式类型转换和显式类型转换。
隐式类型转换(Implicit Type Conversion)
let num = 5;
let str = "10";
let result = num + str; // 隐式转换成字符串,result为"510"
console.log(typeof result); // 输出: "string"
let str = "10";
let result = str - 0; // 隐式转换成字符串,result为10
console.log(typeof result); // 输出: "number"
显式类型转换(Explicit Type Conversion)
显式类型转换是通过调用特定的函数或方法来实现的类型转换,也称为强制类型转换或类型转换。
JavaScript中常见的显式类型转换函数包括:
- Number():将值转换为数字类型
- String():将值转换为字符串类型
- toString():将值转换为字符串类型
- Boolean():将值转换为布尔类型
let num = "10";
let numInt = Number(num); // 显示转换为数字类型
console.log(numInt); // 输出10
let str = 520;
let strConverted = String(str); // 显示转换为字符串类型
console.log(strConverted); // 输出"520"
let boolValue = 0;
let boolConverted = Boolean(boolValue); // 显示转换为布尔类型
console.log(boolConverted); // 输出false
toString()
toString() 是一个用于将数据类型转换为字符串类型的方法。该方法可用于大多数数据类型,包括数字、布尔值、数组、对象等。
对于数字类型:
let num = 10;
let str = num.toString(); // 将数字转换为字符串
console.log(str); // 输出 "10"
对于布尔类型:
let bool = true;
let str = bool.toString(); // 将布尔值转换为字符串
console.log(str); // 输出 "true"
对于数组类型:
let array = [1, 2, 3];
let str = array.toString(); // 将数组转换为逗号分隔的字符串
console.log(str); // 输出 "1,2,3"
对于对象类型:
let obj = {name: "Alice", age: 30};
let str = obj.toString(); // 将对象转换为字符串,默认返回 "[object Object]"
console.log(str); // 输出 "[object Object]"
需要注意的是,toString() 方法可以接受一个参数,这个参数是基数(进制),表示将数字转换为指定进制的字符串形式。
let num = 15;
let binaryStr = num.toString(2); // 将数字转换为二进制字符串
console.log(binaryStr); // 输出 "1111"
JavaScript中的数据类型
顺便来补充一下JavaScript中的数据类型
6种数据类型
- string
- number
- boolean
- object
- function
- symbol
3种对象类型
- Object
- Date
- Array
2种特殊的数据类型
- null
- undefined
判断数据类型
使用typeof
操作符可以查询JavaScript变量的数据类型。
typeof "Hello World!";// 返回 string
typeof 114514;// 返回 number
typeof NaN;// 返回 number
typeof [1,2,3,4];// 返回 object
typeof false;// 返回 boolean
typeof {title:'Hello World!', number:114514};// 返回 object
typeof new Date();// 返回 object
typeof function () {};// 返回 function
typeof data;// 返回 undefined (data没有声明,则返回undefined)
typeof null;// 返回 object
注意一下
数据 | 类型 |
---|---|
NaN | 数据类型为number |
null | 数据类型为object |
未声明(undefined) | 数据类型为undefined |
数组(Array) | 数据类型为object |
日期(Date) | 数据类型为object |