本文介绍: symbol是一种基本数据类型。Symbol()函数会返回symbol类型的值,该类型具有静态属性和静态方法。它的静态属性会暴露几个内建的成员对象;它的静态方法会暴露全局的 symbol 注册,且类似于内建对象类,但作为构造函数来说它并不完整,因为它不支持语法:”Symbol的原理是通过调用Symbol函数来创建一个新的Symbol值。每个通过Symbol函数创建的值都是唯一且不可变的。
ES6 引入了一种新的原始数据类型Symbol
,表示独一无二的值。它属于 JavaScript 语言的原生数据类型之一,其他数据类型是:undefined
、null
、布尔值(Boolean)、字符串(String)、数值(Number)、大整数(BigInt)、对象(Object)。Symbol的作用是创建一个不可变且唯一的标识符,可以用作对象属性的键。它可以用来解决属性名冲突的问题,避免命名冲突。
概述
symbol 是一种基本数据类型。Symbol()
函数会返回 symbol 类型的值,该类型具有静态属性和静态方法。它的静态属性会暴露几个内建的成员对象;它的静态方法会暴露全局的 symbol 注册,且类似于内建对象类,但作为构造函数来说它并不完整,因为它不支持语法:”new Symbol()
“。
Symbol的原理是通过调用Symbol函数来创建一个新的Symbol值。每个通过Symbol函数创建的值都是唯一且不可变的。
基本用法
1. 创建一个唯一的属性键:
2. 使用描述符创建一个带有描述信息的Symbol值:
3. 使用全局注册表共享Symbol值:
4. 获取已注册的全局Symbol键:
5. 遍历对象中所有使用了Symbol作为键名的属性:
6. 使用内置的Well-known Symbols来自定义对象行为:
7. 使用Symbol来定义类的私有属性:
Symbol属性
1. Symbol.iterator:
2. Symbol.toStringTag:
3. Symbol.hasInstance:
4. Symbol.species:
5. Symbol.match、Symbol.replace、Symbol.search和Symbol.split:
总结
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。