zoukankan      html  css  js  c++  java
  • ES6参考---Symbol属性

    ES6参考---Symbol属性

    一、总结

    一句话总结:

    Symbol是ES6中的添加了一种原始数据类型symbol(已有的原始数据类型:String, Number, boolean, null, undefined, 对象),Symbol是唯一的,解决命名冲突问题
        window.onload = function () {
          let symbol = Symbol();
          console.log(typeof symbol);
          console.log(symbol);
          
          // 用作对象的属性(唯一)
          let obj = {username: 'kobe', age: 39};
          obj[symbol] = 'hello';
          obj[symbol] = 'symbol';
          console.log(obj);
          for(let i in obj){
            console.log(i);
          }
        }

    1、为什么会有Symbol?

    ES5中对象的属性名都是字符串,容易造成重名,污染环境

    2、Symbol的特点?

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

    3、Symbol使用?

    调用Symbol函数得到symbol值:let symbol = Symbol();obj[symbol] = 'hello';
    let symbol = Symbol();
    let obj = {};
    obj[symbol] = 'hello';

    二、Symbol属性

    博客对应课程的视频位置:

     1 <!DOCTYPE html>
     2 <html lang="en">
     3 <head>
     4   <meta charset="UTF-8">
     5   <title>Symbol</title>
     6 </head>
     7 <body>
     8   <!--
     9     前言:ES5中对象的属性名都是字符串,容易造成重名,污染环境
    10     Symbol:
    11       概念:ES6中的添加了一种原始数据类型symbol(已有的原始数据类型:String, Number, boolean, null, undefined, 对象)
    12       特点:
    13         1、Symbol属性对应的值是唯一的,解决命名冲突问题
    14         2、Symbol值不能与其他数据进行计算,包括同字符串拼串
    15         3、for in, for of遍历时不会遍历symbol属性。
    16       使用:
    17         1、调用Symbol函数得到symbol值
    18           let symbol = Symbol();
    19           let obj = {};
    20           obj[symbol] = 'hello';
    21         2、传参标识
    22           let symbol = Symbol('one');
    23           let symbol2 = Symbol('two');
    24           console.log(symbol);// Symbol('one')
    25           console.log(symbol2);// Symbol('two')
    26         3、内置Symbol值
    27           * 除了定义自己使用的Symbol值以外,ES6还提供了11个内置的Symbol值,指向语言内部使用的方法。
    28           - Symbol.iterator
    29            * 对象的Symbol.iterator属性,指向该对象的默认遍历器方法(后边讲)
    30 
    31   -->
    32 
    33 
    34 <script type="text/javascript">
    35     window.onload = function () {
    36       let symbol = Symbol();
    37       console.log(typeof symbol);
    38       console.log(symbol);
    39       
    40       // 用作对象的属性(唯一)
    41       let obj = {username: 'kobe', age: 39};
    42       obj[symbol] = 'hello';
    43       obj[symbol] = 'symbol';
    44       console.log(obj);
    45       for(let i in obj){
    46         console.log(i);
    47       }
    48     }
    49 </script>
    50 
    51 </body>
    52 </html>
     
  • 相关阅读:
    必会重构技巧(二):使用多态替换条件
    必会重构技巧(五):划分职责
    Flickr 网站架构分析
    必会重构技巧(三):提取接口
    WCF 一步一步 发布 WCF服务 到 IIS (图)
    LINQ 图解
    在Silverlight中如何创建WCF Service
    必会重构技巧(四):提取工厂类
    技术汇总:第十四章:电脑端生成支付宝二维码支付
    HDU 4463 Outlets 2012年亚洲区域赛杭州赛区现场赛K题
  • 原文地址:https://www.cnblogs.com/Renyi-Fan/p/12585049.html
Copyright © 2011-2022 走看看