返回

解码 JS 的数据类型——种类、判断、转换

前端

JS的数据类型

JavaScript 中有两种基本类型:

  • 原始数据类型(Primitive Data Types): 包括数字(number)、字符串(string)、布尔值(boolean)、undefined、null 和 Symbol。这些数据类型的值不可改变,并且直接存储在栈内存中。

  • 引用数据类型(Reference Data Types): 包括对象(Object)、数组(Array)、函数(Function)、Date 等。引用数据类型的值可以改变,并且存储在堆内存中,只存储数据的地址。

判断数据类型

在 JavaScript 中,可以使用 typeof 运算符来判断变量的数据类型。typeof 运算符返回一个字符串,表示变量的数据类型。例如:

console.log(typeof 1); // "number"
console.log(typeof "hello"); // "string"
console.log(typeof true); // "boolean"
console.log(typeof undefined); // "undefined"
console.log(typeof null); // "object"  // 这是个历史遗留问题,现在已修正,但仍未更新
console.log(typeof Symbol("id")); // "symbol"
console.log(typeof []); // "object"
console.log(typeof {}); // "object"
console.log(typeof function() {}); // "function"

转换数据类型

在 JavaScript 中,可以使用强制类型转换(type coercion)和显式类型转换(type conversion)来转换数据类型。

  • 强制类型转换: 是 JavaScript 自动执行的,无需显式调用。当需要将一种数据类型转换为另一种数据类型时,JavaScript 会自动进行转换。例如:
console.log("1" + 1); // "11"
console.log(1 + "1"); // "11"
console.log(true + 1); // 2
  • 显式类型转换: 是使用特定的函数或语法将一种数据类型显式转换为另一种数据类型。例如:
console.log(Number("1")); // 1
console.log(String(1)); // "1"
console.log(Boolean(0)); // false
console.log(parseInt("10", 2)); // 2

结论

JavaScript 的数据类型是构成 JavaScript 程序的基本组成部分。理解和应用数据类型对于编写有效的 JavaScript 代码非常重要。希望本指南对您有所帮助。