美文网首页
ES6复习-Symbol

ES6复习-Symbol

作者: 黄同学2019 | 来源:发表于2020-04-25 20:59 被阅读0次

写在前面: ES6中对象的属性名都是字符串,容易造成重名,污染环境。

Symbol 的特点:

  • Symbol 属性的值时唯一的,解决命名冲突问题
  • Symbol 值不能与其他数据进行计算,包括字符串拼接
  • for in, for of 不会遍历 Symbol 属性

注意:Symbol函数前不能使用new命令,否则会报错。这是因为生成的 Symbol 是一个原始类型的值,不是对象。也就是说,由于 Symbol 值不是对象,所以不能添加属性。基本上,它是一种类似于字符串的数据类型。

Symbol 的使用

  • 调用Symbol函数得到symbol值
let symbol = Symbol();
let obj = {};
obj[symbol] = 'hello';
  • 传参标识
let symbol = Symbol('one');
let symbol2 = Symbol('two');
console.log(symbol);// Symbol('one')
console.log(symbol2);// Symbol('two')
  • 内置Symbol值
    • 除了定义自己使用的Symbol值以外,ES6还提供了11个内置的Symbol值,指向语言内部使用的方法。
    • Symbol.iterator 迭代器的使用
    • 对象的Symbol.iterator属性
// 当使用 for...of 去遍历某个数据结构的时候,首先去找 Symbol.iterator 接口
 // 若 找到了就去遍历,否则返回 TypeErr: xxx is not iterator
 const data = {
   name: 'Tom',
   age: 18,
   length: 2,
   [Symbol.iterator]: function() {
     let nextIndex = 0
     return {
       next: function() {
         return nextIndex < this.length ? {
           value: this[nextIndex++],
           done: false
         } : 
         {
           value: undefined,
           done: true
         }
       }
     }
   }
 }

参考资料:

相关文章

  • ES6复习-Symbol

    写在前面: ES6中对象的属性名都是字符串,容易造成重名,污染环境。 Symbol 的特点: Symbol 属性的...

  • ES6补充以及Node事件轮询

    Symbol es6中新增了symbol类型,symbol类型的值是通过symbol函数生成的,相同symbol函...

  • 深入理解ES6六

    Symbol ES6新增的数据类型Symbol 创建Symbol:通过去全局的Symbol函数创建一个Symbol...

  • es6中的数据类型之symbol

    1. symbol es6中的数据类型有:number, boolean, string, symbol, nul...

  • 2018-08-06 第一天课 ES6前奏

    1.Symbol ES6新增的 数据类型 -基本类型 值是由Symbol 函数 调用产生的 相同的Symbol 函...

  • JavaSctipt基础归纳,以及隐式转换的规则

    原始类型: "symbol" 是ES6,新扩展的原始类型;Symbol,表示独一无二的值。Symbol 值通过Sy...

  • Symbol

    es6新增数据类型 -- 基本类型 值是由symbol函数调用产生的 Symbol的基本用法 Symbol的使用属...

  • ES6 中的 Symbol

    JavaScript 之 Symbol Symbol是什么 Symbol是ES6中新引入的一种基本数据类型。Sym...

  • Symbol

    Symbol ES6引入了一种新的原始数据类型Symbol,表示独一无二的值.Symbol值通过Symbol函数生...

  • Symbol And Iterator

    Symbol Symbol是es6新引入的一种数据类型,表示一个独一无二的值,Symbol 值通过Symbol函数...

网友评论

      本文标题:ES6复习-Symbol

      本文链接:https://www.haomeiwen.com/subject/gqmkwhtx.html