JavaScript Symbol 对象
-
Symbol
-
symbol是一种基本数据类型(primitive data type)。Symbol()函数会返回symbol类型的值,该类型具有静态属性和静态方法。它的静态属性会暴露几个内建的成员对象;它的静态方法会暴露全局的symbol注册,且类似于内建对象类,但作为构造函数来说它并不完整,因为它不支持语法:
-
Symbol.iterator
-
Symbol.iterator 为每一个对象定义了默认的迭代器。该迭代器可以被for...of循环使用。Symbol.iterator属性的属性特性:writablefalseenumerablefalseconfigurablefalse描述当需要对一个对象进行迭代时(比如开始用于一个for..o
-
Symbol.asyncIterator
-
Symbol.asyncIterator符号指定了一个对象的默认异步迭代器。如果一个对象设置了这个属性,它就是异步可迭代对象,可用于for await...of循环。描述Symbol.asyncIterator是一个用于访问对象的@@asyncIterator方法的内建符号。一个异步可迭代对象必须要
-
Symbol.match
-
Symbol.match 指定了匹配的是正则表达式而不是字符串。String.prototype.match()方法会调用此函数。描述此函数还用于标识对象是否具有正则表达式的行为。比如,假值),就表示该对象不打算用作正则表达式对象。Symbol.match属性的属性特性:writablefalsee
-
Symbol.matchAll
-
Symbol.matchAll返回一个迭代器,该迭代器根据字符串生成正则表达式的匹配项。此函数可以被String.prototype.matchAll()方法调用。描述此Symbol用于RegExp.prototype[@@matchAll]()。下面两个例子返回相同的结果:'abc'.matchA
-
Symbol.replace
-
ymbol.replace这个属性指定了当一个字符串替换所匹配字符串时所调用的方法。String.prototype.replace()方法会调用此方法。Symbol.replace属性的属性特性:writablefalseenumerablefalseconfigurablefalseclass
-
Symbol.search
-
Symbol.search 指定了一个搜索方法,这个方法接受用户输入的正则表达式,返回该正则表达式在字符串中匹配到的下标,这个方法由以下的方法来调用String.prototype.search()。更多信息请参见String.prototype.search().Symbol.search属性的属
-
Symbol.split
-
Symbol.split指向一个正则表达式的索引处分割字符串的方法。这个方法通过String.prototype.split()调用。详情请参阅String.prototype.split().Symbol.split属性的属性特性:writablefalseenumerablefalseconfi
-
Symbol.species
-
知名的Symbol.species是个函数值属性,其被构造函数用以创建派生对象。Symbol.species属性的属性特性:writablefalseenumerablefalseconfigurablefalse描述species 访问器属性允许子类覆盖对象的默认构造函数。示例你可能想在扩展数组类
-
Symbol.keyFor()
-
Symbol.keyFor(sym)方法用来获取 symbol 注册表中与某个 symbol 关联的键。语法Symbol.keyFor(sym);参数sym必选参数,存储在 symbol 注册表中的某个 symbol返回值如果全局注册表中查找到该symbol,则返回该symbol的key值,形式为s
-
Symbol.hasInstance
-
Symbol.hasInstance用于判断某对象是否为某构造器的实例。因此你可以用它自定义instanceof操作符在某个类上的行为。Symbol.hasInstance属性的属性特性:writablefalseenumerablefalseconfigurablefalse示例你可实现一个自定义
-
Symbol.isConcatSpreadable
-
内置的Symbol.isConcatSpreadable符号用于配置某对象作为Array.prototype.concat()方法的参数时是否展开其数组元素。描述@@isConcatSpreadable符号(Symbol.isConcatSpreadable)可以直接定义为对象属性或继承而来,它是布
-
Symbol.unscopables
-
Symbol.unscopables 指用于指定对象值,其对象自身和继承的从关联对象的 with 环境绑定中排除的属性名称。描述可以在任何对象上定义@@unscopables symbol(Symbol.unscopables),用于排除属性名称并与with环境绑定在一起作为词法变量公开。请注意,如
-
Symbol.toPrimitive
-
Symbol.toPrimitive是一个内置的 Symbol 值,它是作为对象的函数值属性存在的,当一个对象转换为对应的原始值时,会调用此函数。描述在Symbol.toPrimitive属性(用作函数值)的帮助下,一个对象可被转换为原始值。该函数被调用时,会被传递一个字符串参数hint,表示要转换
-
Symbol.toStringTag
-
Symbol.toStringTag是一个内置 symbol,它通常作为对象的属性键使用,对应的属性值应该为字符串类型,这个字符串用来表示该对象的自定义类型标签,通常只有内置的Object.prototype.toString()方法会去读取这个标签并把它包含在自己的返回值里。Symbol.toSt
-
Symbol.prototype.description
-
description是一个只读属性,它会返回Symbol对象的可选描述的字符串。语法Symbol('myDescription').description;Symbol.iterator.description;Symbol.for('foo').description;描述Symbol对象可以通
-
Symbol.prototype.valueOf()
-
valueOf()方法返回当前 symbol 对象所包含的 symbol 原始值。语法symbol.valueOf();描述在 JavaScript 中,虽然大多数类型的对象在某些操作下都会自动的隐式调用自身的valueOf()方法或者toString()方法来将自己转换成一个原始值,但 symbo
-
Symbol.prototype.toString()
-
toString()方法返回当前 symbol 对象的字符串表示。语法symbol.toString();描述Object.prototype.toString()。symbol 原始值不能转换为字符串symbol 原始值不能转换为字符串,所以只能先转换成它的包装对象,再调用toString()方法
-
Symbol.prototype[@@toPrimitive]
-
[@@toPrimitive]()方法可将 Symbol 对象转换为原始值。语法Symbol()[Symbol.toPrimitive](hint);返回值该原始值为指定的Symbol对象描述Symbol的[@@toPrimitive]()方法返回该 Symbol 对象原始值作为 Symbol 数据