JavaScript 数据类型
- JavaScript的基本数据类型:JavaScript拥有八种基本数据类型,包括String、Number、BigInt、Boolean、undefined、null、Symbol和Object,其中前七种为原始数据类型,Object为非原始类型。
- 数据类型的特点和用途:每种数据类型都有其特定的用途,如String用于文本数据,Number表示整数或浮点数,而Boolean用于表示逻辑真或假。
- 动态类型和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 或 false | true 和 false |
undefined (未定义) | 变量未初始化的数据类型 | let a; |
null (空值) | 表示 null 值 | let 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
(布尔值)表示两个值之一:true
或 false
。可以将其视为是/否开关。例如,
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"
注意 typeof
对 null
类型返回了 "object"
。这是 JavaScript 自第一版发布以来的一个已知问题。