美文网首页
ES6-Symbol

ES6-Symbol

作者: fb941c99409d | 来源:发表于2020-08-12 20:10 被阅读0次

ES5中对象的属性名都是字符串,容易造成重名,污染环境
Symbol: 概念:ES6中的添加了一种原始数据类型symbol(已有的原始数据类型:String, Number, boolean, null, undefined, Object)

特点

1. Symbol属性对应的值是唯一的,解决命名冲突问题
2. Symbol值不能与其他数据进行计算,包括同字符串拼串
3. for in, for of遍历时不会遍历symbol属性。

使用
//1.调用Symbol函数得到symbol值
    let symbol = Symbol();
    let obj = {};
    obj[symbol] = 'hello';
//2.传参标识, 没有具体用途 ,只是便于开发人员 辨识
    let symbol = Symbol('one');
    let symbol2 = Symbol('two');
    console.log(symbol);// Symbol('one')
    console.log(symbol2);// Symbol('two')
//3.内置Symbol值 除了定义自己使用的Symbol值以外,ES6还提供了11个内置的Symbol值,指向语言内部使用的方法。`
    Symbol.iterator 对象的Symbol.iterator属性,指向该对象的默认遍历器方法

<script type="text/javascript">
    window.onload = function () {
      let symbol = Symbol();
      console.log(typeof symbol);// symbol
      console.log(symbol);//Symbol()
      
      // 用作对象的属性(唯一)
      let obj = {username: 'kobe', age: 39};
      obj[symbol] = 'hello';
      obj[symbol] = 'symbol';
      console.log(obj); //{username: "kobe", age: 39, Symbol(): "symbol"}
      console.log(obj[symbol]);//symbol
      for(let i in obj){
        console.log(i);//不会遍历 symbol属性
      }
    }
</script>

相关文章

  • es6-Symbol

    title: es6-Symboldate: 2018-02-07 22:40:00tags: es6 前言 突然...

  • ES6-Symbol

    1.概括 ES5 的对象属性名都是字符串,这容易造成属性名的冲突。比如,你使用了一个他人提供的对象,但又想为这个对...

  • ES6-Symbol

    ES6 中引入了一种新的原始数据类型 Symbol,表示独一无二的值。引入的原因:保证每个属性名都是独一无二的,从...

  • ES6-Symbol

    初识Symbol ES6 引入了一种新的原始数据类型Symbol,表示独一无二的值。它是 JavaScript 语...

  • ES6-Symbol

    创建Symbol实例let s1 = Symbol()let s2 = Symbol('another symbo...

  • ES6-Symbol

    1.概述 ES5 的对象属性名都是字符串,这容易造成属性名的冲突。比如,你使用了一个他人提供的对象,但又想为这个对...

  • ES6-Symbol

    ES5中对象的属性名都是字符串,容易造成重名,污染环境Symbol: 概念:ES6中的添加了一种原始数据类型sym...

  • es6-symbol的用法

    Symbol数据类型 Synmbol 数据类型提供一个独一无二的值。 Symbol的声明 Symbol的使用 根据...

  • es6-Symbol数据类型

    Symbol Symbol 是一个符号对象,是es6新添加的数据类型,通过Symbol()可以得到一个唯一的值,所...

网友评论

      本文标题:ES6-Symbol

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