美文网首页我爱编程
TypeScript 学习笔记 之 Symbol 迭代器与生成器

TypeScript 学习笔记 之 Symbol 迭代器与生成器

作者: 一半晴天 | 来源:发表于2018-03-08 11:14 被阅读20次

    Symbol

    symbol 是 ES 2015 引入的一个新的原始类型。 通过 Symbol 构造函数创建。
    symbol 具有不可变性和唯一性。

    1. 唯一性示例:
    let sym2 = Symbol("key");
    let sym3 = Symbol("key");
    sym2 == sym3 ; // false ,即使创建的 key 相同也不相等。 symbol 具有 唯一性.
    
    1. symbol对象 也可以像string 对象一样作为对象的属性 key.
    let sym = Symbol();
    let obj = {
      [sym]: "value"
    }
    
    1. symbol 对象也可以与 computed 属性声明来声明其他对象属性或类成员。
    const getClassNameSymbol = Symbol();
    class C{
      [getClassNameSymbol](){
         return "C";
      }
    }
    
    1. 内置的Symbol
      参考 [Symbol] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol)

    Iterators and Generators

    An object is deemed iterable if it has an implementation for the Symbol.iterator property.

    for..of 语句可以通过遍历可迭代对象。

    let arr = [1,"string", false];
    for(let ele of arr){
    }
    

    for..of VS for..in

    for..in 是遍历指定对象的key 列表。

    注意:如果如果要兼容 ES5 的话 for..of 只能用于数组类型。

    相关文章

      网友评论

        本文标题:TypeScript 学习笔记 之 Symbol 迭代器与生成器

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