ES6 Symbol 是一种新的原始数据类型,用于表示唯一的标识符
▥前端
𝄐 0
es6 es7,es6 es8,es6 es8 对比,es6 es5,es6 es7 怎么选,es6 es7新特性
ES6 Symbol 是一种新的原始数据类型,用于表示唯一的标识符。Symbol 值是不可变且唯一的,可以用作对象属性名或者其他上下文中需要唯一性的地方。
在 JavaScript 中,对象属性名都是字符串类型,因此可能会出现命名冲突或覆盖的情况。使用 Symbol 可以避免这种情况,因为每个 Symbol 都是唯一的,不会与其他任何值相等。
创建一个 Symbol 的方式是通过全局的 Symbol 函数,可以选择传入一个描述 Symbol 的字符串参数:
javascript
const mySymbol = Symbol('mySymbol');
console.log(typeof mySymbol); // "symbol"
可以将 Symbol 用作对象的属性名:
javascript
const obj = {};
obj[mySymbol] = 'Hello';
console.log(obj[mySymbol]); // "Hello"
使用 Symbol.for() 方法可以创建一个全局共享的 Symbol,多次调用 Symbol.for() 方法并传入相同的字符串参数会返回相同的 Symbol:
javascript
const globalSymbol = Symbol.for('globalSymbol');
const anotherGlobalSymbol = Symbol.for('globalSymbol');
console.log(globalSymbol === anotherGlobalSymbol); // true
这里创建了两个相同的 Symbol,它们实际上是同一个 Symbol,因为它们共享了相同的键。
除了创建 Symbol ,还有许多内置的 Symbol 值,如 Symbol.iterator、Symbol.toStringTag、Symbol.species 等,它们可以用于更改对象的默认行为。
ES6 Symbol 是一种新的原始数据类型,用于表示唯一的标识符。Symbol 值是不可变且唯一的,可以用作对象属性名或者其他上下文中需要唯一性的地方。
在 JavaScript 中,对象属性名都是字符串类型,因此可能会出现命名冲突或覆盖的情况。使用 Symbol 可以避免这种情况,因为每个 Symbol 都是唯一的,不会与其他任何值相等。
创建一个 Symbol 的方式是通过全局的 Symbol 函数,可以选择传入一个描述 Symbol 的字符串参数:
javascript
const mySymbol = Symbol('mySymbol');
console.log(typeof mySymbol); // "symbol"
可以将 Symbol 用作对象的属性名:
javascript
const obj = {};
obj[mySymbol] = 'Hello';
console.log(obj[mySymbol]); // "Hello"
使用 Symbol.for() 方法可以创建一个全局共享的 Symbol,多次调用 Symbol.for() 方法并传入相同的字符串参数会返回相同的 Symbol:
javascript
const globalSymbol = Symbol.for('globalSymbol');
const anotherGlobalSymbol = Symbol.for('globalSymbol');
console.log(globalSymbol === anotherGlobalSymbol); // true
这里创建了两个相同的 Symbol,它们实际上是同一个 Symbol,因为它们共享了相同的键。
除了创建 Symbol ,还有许多内置的 Symbol 值,如 Symbol.iterator、Symbol.toStringTag、Symbol.species 等,它们可以用于更改对象的默认行为。
本文地址:
/show-277556.html
版权声明:除非特别标注原创,其它均来自互联网,转载时请以链接形式注明文章出处。