什么是symbol?

简介: 什么是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类型的属性名。

相关文章
|
2月前
|
JavaScript 前端开发
ES6:什么是Symbol?
ES6:什么是Symbol?
28 1
|
2月前
|
JavaScript 前端开发 开发者
|
1天前
|
JavaScript
JS【详解】Symbol (含Symbol 作为属性名,静态方法for 和 keyFor,11 个内置的 Symbol 值)
JS【详解】Symbol (含Symbol 作为属性名,静态方法for 和 keyFor,11 个内置的 Symbol 值)
5 1
|
16天前
|
JavaScript
什么是symbol?
什么是symbol?
10 0
|
2月前
|
JavaScript 前端开发
Symbol有哪些常用的内置方法
Symbol有哪些常用的内置方法
|
12月前
Es6 symbol
Es6 symbol
36 0
|
JavaScript
Symbol详解
Symbol详解
99 0
|
存储 JavaScript API
ES6 中的 Symbol —— 多的是你不知道的事
ES6 中的 Symbol —— 多的是你不知道的事
60 0
undefined reference to symbol XGetWindowAttributes/cairo_destroy/XShapeGetRectangles
undefined reference to symbol XGetWindowAttributes/cairo_destroy/XShapeGetRectangles
115 0