Symbol常量

74 阅读2分钟

今天看代码时学到一个新的数据类型。Symbol。

文件加载成功
export const FILE_LOAD_Success = Symbol('FILE_LOAD_Success')

Symbol 是 JavaScript 中的一个内置原始数据类型,它用于创建唯一的、不可变的、原始的值,通常用作对象属性的键。Symbol 提供了一种机制,使得开发者可以定义不会与其他属性键冲突的属性键。

以下是 Symbol 的一些关键特性:

  1. 唯一性:每个通过 Symbol() 函数创建的 Symbol 值都是唯一的,即使是使用相同的描述符创建的 Symbol 也是不同的。
  2. 不可变性Symbol 值一旦创建,就不能被更改。它们是不可变的。
  3. 作为属性键Symbol 通常用作对象的属性键,特别是当你想要添加一个不会与其他属性冲突的私有属性时。
  4. 内置方法:JavaScript 提供了一些内置方法来与 Symbol 一起使用,例如 Object.getOwnPropertySymbols() 可以获取对象的所有 Symbol 属性键,而 Reflect.ownKeys() 可以获取对象的所有键,包括 Symbol 属性键。
  5. 全局 Symbol:JavaScript 还提供了一个全局的 Symbol 库,允许开发者定义全局可用的 Symbol,例如 Symbol.iterator,它用于实现可迭代协议。

symbol和const的区别

const

  • const 是一种声明变量的方式,用于定义一个只读的常量。一旦使用 const 声明了一个变量,就不能重新赋值给这个变量,但变量内的对象可以被修改(如果变量是一个对象的话)。
  • const 声明的变量必须在使用前初始化,不能留空。
  • const 常用于定义不会改变的值,例如配置常量、数学常数等。

symbol:

  • Symbol 是 JavaScript 中的一种原始数据类型,用于创建一个唯一的、不可变的、原始的值,通常用作对象属性的键。
  • Symbol 可以确保属性键的唯一性,避免属性名冲突。
  • Symbol 值是不可变的,并且每个 Symbol 都是唯一的。