你不知道的 JavaScript 数据类型
2023-10-07 18:32:49
如今的JavaScript并不是十年前的JavaScript。从ES6开始,每一年都会有新的功能被添加到JavaScript当中。这些新的功能大大地增强了JavaScript的能力,它逐渐演变成了一个在浏览器端运行和生成网页内容的工具,变成了一个可以编写桌面程序、移动端程序、甚至可以处理文件操作的平台。
在这么多的新变化中,我们不可避免地忽略了数据类型的变化。除了字符串、数字、布尔类型和对象之外,还有许多其他的数据类型。这些数据类型可能我们用得比较少,甚至没有用过,但它们却很强大,可以用来处理很多我们之前无法处理的数据。在本文中,我们就来讨论一下这些经常被我们忽略的数据类型。
null
null 是一个表示“空”的对象。它不是一个原始类型,而是一个对象。当一个变量没有任何值时,它就会被赋予 null 值。null 值可以被显式地赋予变量,也可以在变量未被初始化时自动赋予。
let x = null; // 显式赋予 null 值
let y; // 未被初始化,自动赋予 null 值
undefined
undefined 是一个表示“未定义”的原始类型。它表示变量还没有被赋值,或者函数的参数没有被传递。undefined 值不能被显式地赋予变量,只能在变量未被赋值或函数的参数没有被传递时自动赋予。
let x = undefined; // 错误,无法显式赋予 undefined 值
let y; // 未被初始化,自动赋予 undefined 值
function f(x) { // 未传递参数,自动赋予 undefined 值
console.log(x); // 输出:undefined
}
symbol
symbol 是一个表示唯一标识符的原始类型。它可以被用来创建独一无二的值,这些值可以在对象中作为属性名使用。symbol 值不能被显式地赋予变量,只能通过 Symbol() 函数创建。
const sym = Symbol();
let obj = {};
obj[sym] = 'Hello';
console.log(obj[sym]); // 输出:Hello
BigInt
BigInt 是一个表示大整数的原始类型。它可以用来处理超出 Number 范围的整数。BigInt 值可以通过在整数后面添加一个 n 来创建,也可以通过 BigInt() 函数创建。
const bigInt1 = 9007199254740991n; // 使用 n 创建
const bigInt2 = BigInt(9007199254740991); // 使用 BigInt() 函数创建
console.log(bigInt1 + bigInt2); // 输出:18014398509481982n
其他数据类型
除了上述四种数据类型之外,JavaScript 中还有一些其他不常被提及的数据类型,比如:
- Function:表示函数。
- Array:表示数组。
- Object:表示对象。
- Date:表示日期。
- RegExp:表示正则表达式。
- Error:表示错误。
这些数据类型都是 JavaScript 的内置类型,它们提供了丰富的功能,可以用来处理各种各样的数据。
结论
JavaScript 中的数据类型非常丰富,除了我们熟知的数值型、字符串型、布尔型等基本数据类型,还有一些不常被提及的数据类型,比如 null、undefined、symbol 和 BigInt。这些数据类型可能鲜为人知,但它们在 JavaScript 中却扮演着重要的角色。我们应该熟悉这些数据类型,以便在开发中能够更好地利用它们。