JavaScript是一种动态类型语言,这意味着变量的类型是在运行时自动确定的。以下是JavaScript中的主要数据类型,以及它们的详细说明:
-
Undefined(未定义)
-
undefined
:一个变量声明了但尚未被赋值时的默认值。 -
示例:
let x; console.log(typeof x); // "undefined"
-
-
Null(空值)
-
null
:表示故意赋予变量的空值。 -
示例:
let y = null; console.log(typeof y); // "object"(这是一个历史遗留问题)
-
-
Boolean(布尔值)
-
true
或false
:逻辑值,用于条件判断。 -
示例:
let isApproved = true; let isReady = false;
-
-
Number(数字)
-
整数或浮点数:表示数值。
-
示例:
let age = 29; let price = 19.99;
-
-
BigInt(大整数)
-
表示大于2^53-1的整数。
-
示例:
let bigNumber = BigInt(1234567890123456789012345678901234567890n);
-
-
String(字符串)
-
由双引号
"..."
、单引号'...'
或模板字面量...
包围的字符序列。 -
示例:
let name = "John Doe"; let greeting = 'Hello, world!'; let message = `Hello, ${name}!`;
-
-
Symbol(符号)
-
ES6引入的新类型,是一个唯一的、不可变的数据类型。
-
示例:
let mySymbol = Symbol('mySymbol');
-
-
Object(对象)
-
键值对的集合,键是字符串或符号,值可以是任意类型。
-
示例:
let person = { name: 'Alice', age: 25, greet: function() { console.log(`Hello, my name is ${this.name}!`); } };
-
-
Array(数组)
-
一种特殊的对象,用于存储有序的集合。
-
示例:
let numbers = [1, 2, 3, 4, 5]; let fruits = ['apple', 'banana', 'cherry'];
-
-
Function(函数)
-
一种特殊的对象,可以被调用,具有参数和返回值。
-
示例:
function sayHello(name) { console.log(`Hello, ${name}!`); }
-
-
Date(日期)
-
用于处理日期和时间。
-
示例:
let today = new Date();
-
-
RegExp(正则表达式)
-
用于字符串搜索和替换的模式。
-
示例:
let regex = /hello/;
-
-
Map(映射)
-
集合类型,存储键值对的集合,键可以是任意类型。
-
示例:
let map = new Map(); map.set('key', 'value');
-
-
Set(集合)
-
存储唯一的值,无论是什么类型。
-
示例:
let set = new Set(); set.add(1);
-
-
WeakMap(弱映射)
-
键必须是对象,且这些对象的引用会被自动回收。
-
示例:
let weakMap = new WeakMap();
-
-
WeakSet(弱集合)
-
存储对象的集合,对象的引用会被自动回收。
-
示例:
let weakSet = new WeakSet();
-
-
Promise(承诺)
-
表示异步操作的最终完成或失败。
-
示例:
let promise = new Promise((resolve, reject) => { // 异步操作 });
-
-
ArrayBuffer(数组缓冲区)
-
用于表示通用的、固定长度的二进制数据缓冲区。
-
示例:
let buffer = new ArrayBuffer(16);
-
-
SharedArrayBuffer(共享数组缓冲区)
-
与
ArrayBuffer
类似,但它可以被多个共享内存的线程访问。 -
示例:
let sharedBuffer = new SharedArrayBuffer(16);
-
-
DataView(数据视图)
-
用于读取和写入多种数值类型的二进制数据。
-
示例:
let buffer = new ArrayBuffer(16); let view = new DataView(buffer);
-
-
Typed Arrays(类型化数组)
-
基于
ArrayBuffer
的数组,用于在内存中表示基本的数据类型。 -
示例:
let int16Array = new Int16Array(buffer);
-
每种数据类型都有其特定的用途和特性,了解它们对于编写高效和有效的JavaScript代码至关重要。