跳到主要内容

JavaScript 数据类型

提示
  1. JavaScript的基本数据类型:JavaScript拥有八种基本数据类型,包括String、Number、BigInt、Boolean、undefined、null、Symbol和Object,其中前七种为原始数据类型,Object为非原始类型。
  2. 数据类型的特点和用途:每种数据类型都有其特定的用途,如String用于文本数据,Number表示整数或浮点数,而Boolean用于表示逻辑真或假。
  3. 动态类型和typeof运算符:JavaScript是一种动态类型语言,变量的数据类型可以改变。使用typeof运算符可以检测变量的数据类型。

在 JavaScript 程序中,我们可以使用不同类型的数据。例如,

const x = 5; // x 是一个整数数据
const y = "Hello"; // y 是一个字符串数据

JavaScript 数据类型

JavaScript 有八种基本数据类型,它们是:

数据类型 (Data Types)描述 (Description)示例 (Example)
String(字符串)代表文本数据'hello', "hello world!"
Number(数字)整数或浮点数3, 3.234, 3e-2
BigInt(大整数)任意精度的整数900719925124740999n, 1n
Boolean(布尔值)两个值之一:true 或 falsetruefalse
undefined(未定义)变量未初始化的数据类型let a;
null(空值)表示 nulllet a = null;
Symbol(符号)实例是唯一且不可变的数据类型let value = Symbol('hello');
Object(对象)数据的键值对集合let student = { };

这里,除了 Object(对象)外,所有数据类型都是原始数据类型,而 Object 是非原始类型。

注意: Object 数据类型(非原始类型)可以存储数据集合,而原始数据类型只能存储单个数据。

JavaScript 字符串

String(字符串)用于存储文本。在 JavaScript 中,字符串被引号包围:

  • 单引号:'Hello'
  • 双引号:"Hello"
  • 反引号:Hello

例如,

// 字符串示例
const name = "ram";
const name1 = "hari";
const result = `名字是 ${name}${name1}`;

单引号和双引号实际上是相同的,您可以使用其中任何一种。

反引号通常在需要将变量或表达式包含在字符串中时使用。这是通过 ${变量或表达式} 来完成的,如上所示。

您将在 JavaScript 字符串 教程中了解反引号的使用。

JavaScript 数字

Number(数字)表示整数和浮点数(小数和指数)。例如,

const number1 = 3;
const number2 = 3.433;
const number3 = 3e5; // 3 * 10^5

数字类型也可以是 +Infinity(正无穷大)、-Infinity(负无穷大)和 NaN(非数字)。例如,

const number1 = 3 / 0;
console.log(number1); // Infinity

const number2 = -3 / 0;
console.log(number2); // -Infinity

// 字符串不能除以数字
const number3 = "abc" / 3;
console.log(number3); // NaN

JavaScript 大整数(BigInt)

在 JavaScript 中,Number 类型只能表示小于 (2^53 - 1) 并且大于 -(2^53 - 1) 的数字。然而,如果您需要使用比这更大的数字,您可以使用 BigInt 数据类型。

通过在整数后面附加 n 来创建 BigInt 数字。例如,

// BigInt 值
const value1 = 900719925124740998n;

// 相加两个大整数
const result1 = value1 + 1n;
console.log(result1); // "900719925124740999n"

const value2 = 900719925124740998n;

// 错误!BigInt 和 number 不能相加
const result2 = value2 + 1;
console.log(result2);

输出

900719925124740999n
Uncaught TypeError: Cannot mix BigInt and other types

注意: BigInt 在 JavaScript 的新版本中引入,许多浏览器(包括 Safari)不支持。访问 JavaScript BigInt 支持情况 了解更多。

JavaScript 布尔值

这种数据类型表示逻辑实体。Boolean(布尔值)表示两个值之一:truefalse。可以将其视为是/否开关。例如,

const dataChecked = true;
const valueCounted = false;

您将在 JavaScript 比较和逻辑运算符 教程中了解更多关于布尔值的信息。

JavaScript 未定义(undefined)

undefined 数据类型表示未赋值的值。如果声明了变量但未赋值,则该变量的值将是 undefined。例如,

let name;
console.log(name); // undefined

也可以显式地将变量值赋为 undefined。例如,

let name = undefined;
console.log(name); // undefined

注意: 建议不要显式地将 undefined 赋给变量。通常,null 被用来给变量赋值为“未知”或“空”的值。

JavaScript 空值(null)

在 JavaScript 中,null 是一个特殊的值,表示未知的值。例如,

const number = null;

上面的代码表明变量 number 是空的。

注意null 与 NULL 或 Null 不同。

JavaScript 符号(Symbol)

这种数据类型在 JavaScript 的新版本(从 ES2015 起)中引入。

拥有 Symbol 数据类型的值可以被称为符号值Symbol 是一个唯一且不可变的原始值。例如,

// 两个具有相同描述的符号

const value1 = Symbol("hello");
const value2 = Symbol("hello");

尽管 value1 和 value2 都包含 'hello',但由于它们是 Symbol 类型,所以它们是不同的。

访问 JavaScript 符号 了解更多。

JavaScript 对象

Object(对象)是一个复杂的数据类型,允许我们存储数据集合。例如,

const student = {
firstName: "ram",
lastName: null,
class: 10,
};

您将在后续教程中了解有关 JavaScript 对象 的更多信息。

JavaScript 类型

JavaScript 是一种动态类型(松散类型)语言。JavaScript 会自动为您确定变量的数据类型。

这也意味着变量可以是一种数据类型,稍后可以改变为另一种数据类型。例如,

// data 是未定义类型
let data;

// data 是整数类型
data = 5;

// data 是字符串类型
data = "JavaScript 编程";

JavaScript typeof

要找出变量的类型,您可以使用 typeof 运算符。例如,

const name = "ram";
typeof name; // 返回 "string"

const number = 4;
typeof number; // 返回 "number"

const valueChecked = true;
typeof valueChecked; // 返回 "boolean"

const a = null;
typeof a; // 返回 "object"

注意 typeofnull 类型返回了 "object"。这是 JavaScript 自第一版发布以来的一个已知问题。