Skip to main content

迭代器

迭代的英文,iteration,重复,再来,

在es6中新增了map和set两种数据结构,

迭代与循环

迭代器

可迭代协议与可迭代对象

symbol

在5种基本数据类型:number,string,boolean,undefined,null

在最新的mdn上看到在js中,原始数据类型在以上五种基本数据类型的基础上又新增了bigint和symbol两种类型.

symbol是es6新增的一种基本数据类型

bigint是es11新增的一种基本数据类型.


通过symbol函数可返回一个Symbol类型的值,该值是全局唯一的,

symbol函数可接收一个可选的描述性参数,用于

symbol函数只能通过函数调用,而不能通过new来生成

这种数据类型的唯一目的就是作为

通过symbol函数生成的值,仅在当前文档中唯一,如果希望在全局唯一需要使用symbol.key

作为对象的属性名

注意事项:访问symbol类型值的属性时,如何访问?

使用symbol类型值作为属性名的属性,不会出现在Object.keys中,如果需要获取可使用getOwnPropertySymbols()方法

2.使用reflect.ownKeys()方法可返回所有类型的键名

symbol类型的值具有唯一性的特点,可以有两种用途

2.作为私有属性

Symbol.for

有时希望重复使用同一个Symbol值,Symbol.for方法可以做到这一点.

symbol.for为symbol值登记的名字是全局环境的,可以在不同的iframe或service worker中取到同一个值.

关于js中私有属性的实现方式

WeakMap

Symbol