JavaScript 数据类型

预计阅读时间1 分 116 views

数据类型是编程语言的基础,它们决定了变量可以存储哪些类型的值,以及可以对这些值进行哪些操作。JavaScript 作为一门动态类型语言,其数据类型系统非常灵活。

JavaScript 的数据类型

最新的 ECMAScript 标准定义了八种数据类型:

七种基本数据类型:

  • 布尔值 (Boolean): 只有两个值: true (真) 和 false (假),用于表示逻辑判断的结果。
  • 空值 (null): 表示一个空值,可以用 null 关键字表示。
  • 未定义 (undefined): 表示变量未被赋值。
  • 数字 (Number): 表示整数或浮点数,例如 423.14159
  • 任意精度整数 (BigInt): 用于表示超大整数,超过了普通 Number 类型的安全整数限制。
  • 字符串 (String): 表示文本数据,例如 "Hello, world!"
  • 符号 (Symbol): ES6 引入的新类型,用于创建独一无二的值。

一种复杂数据类型:

  • 对象 (Object): 用于存储复杂的数据结构,由键值对组成。

动态类型

JavaScript 的一大特点是 动态类型,这意味着我们无需在声明变量时指定其数据类型,解释器会在运行时根据变量的值自动推断其类型。

let age = 25;      //  age 的类型被推断为数字
age = "二十五岁";  //  age 的类型被动态地改为字符串

这种灵活性为我们编写代码带来了便利,但也需要我们更加小心,避免因为类型转换问题导致的错误。

数据类型转换

在 JavaScript 中,经常需要进行数据类型转换,特别是数字和字符串之间的转换。

数字转换为字符串:

  • 在使用 + 运算符连接字符串时,如果其中一个操作数是数字,JavaScript 会自动将数字转换为字符串。
   let message = "你的年龄是:" + 25; //  message 的值是 "你的年龄是:25"

字符串转换为数字:

  • 可以使用 parseInt() 函数将字符串解析为整数,忽略小数部分。
  let age = parseInt("25"); //  age 的值是 25
  • 可以使用 parseFloat() 函数将字符串解析为浮点数。
  let price = parseFloat("39.99");  // price 的值是 39.99
  • 可以使用一元加法运算符 (+) 将字符串转换为数字。
  let num = +"123"; //  num 的值是 123

原始类型与引用类型

JavaScript 的八种数据类型可以进一步分为两类:

  1. 原始类型 (Primitive Types):
    • 包括:布尔值 (Boolean)、空值 (null)、未定义 (undefined)、数字 (Number)、BigInt、字符串 (String)、符号 (Symbol)。
    • 存储在栈内存中,变量直接存储值。
    • 按值传递: 复制变量时,复制的是值的副本,修改一个变量不会影响另一个。
  2. 引用类型 (Reference Types):
    • 包括:对象 (Object) ,以及由对象派生出的数组 (Array)、函数 (Function) 等。
    • 存储在堆内存中,变量存储的是值的引用(内存地址)。
    • 按引用传递:复制变量时,复制的是内存地址的副本,指向同一个值。修改一个变量会影响另一个。
// 原始类型
let a = 10;
let b = a; 
b = 20;  //  修改 b 不会影响 a
console.log(a); //  10 

// 引用类型
let obj1 = { name: "Alice" };
let obj2 = obj1;
obj2.name = "Bob"; //  修改 obj2 会影响 obj1
console.log(obj1.name);  // "Bob" 
分享此文档

JavaScript 数据类型

或复制链接

本页目录