什么是symbol?

Symbol是ES6引入的一种新的基本数据类型。它表示一个独一无二的值,可以作为对象的属性名使用。与字符串或数字等其他类型的属性名不同,Symbol类型的属性名不会与其他属性名冲突,因为每个Symbol值都是唯一的。

Symbol值通过Symbol()函数创建,它的语法格式如下:

let mySymbol = Symbol();

Symbol函数可以接受一个可选的字符串参数,用于描述该Symbol值的含义,例如:

let mySymbol = Symbol('my description');

Symbol值可以用作对象属性的键名,如下所示:

let mySymbol = Symbol('my symbol');
let obj = {
  [mySymbol]: 'foo'
};
console.log(obj[mySymbol]); // 'foo'

需要注意的是,由于Symbol类型的属性名是唯一的,因此它们不能被枚举,即无法使用for...in循环遍历。如果要遍历Symbol类型的属性,可以使用Object.getOwnPropertySymbols方法获取所有Symbol类型的属性名。

你可能感兴趣的:(javascript,前端,开发语言)