• es6之symbol数据类型


    1、六大数据类型

      String字符串类型、Number数字类型、Object对象类型、Boolean布尔值类型、Null空值、Undefined 未定义

    symbol出现原因:

      解决对象的属性名冲突

    使用: 

    1     // 定义一个symbol类型的变量
    2     let symbol = Symbol();
    3     console.log(symbol);
    4     console.log(typeof symbol);  //symbol 类型

    特点:任何一个Symbol定义的都是独一无二的。

    2、API

      1、获取Symbol定义的属性  Object.getOwnPropertySymbol()

    1  console.log(Object.getOwnPropertySymbols(Person)); //[Symbol(name)]

      2、获取全部属性 Reflect.ownKeys() ;

      3、Symbol.for()创建的时候会把Symbol的值放到全局环境中,供以后的Symbol使用。

      4、Symbol.keyFor() 搜索全局中是否有Symbol.for定义的变量  有的话拿过来用,没有重新定义

      

     1 <script>
     2     let name = Symbol('咱这是名字的描述');
     3     let Person = {
     4         name: '名字普通',
     5         [name]: '名字Symbol定义',
     6     }
     7 
     8     // 获取全部的属性
     9     console.log(Reflect.ownKeys(Person));  // ["name", Symbol(咱这是名字的描述)]
    10     // Symbol.for();   在创建的时候会把symbol的值登记在全局环境中,供以后Symbol.for()来搜索
    11     let name1 = Symbol.for('name');
    12     let name2 = Symbol.for('name');
    13     console.log(name1 === name2);   //true
    14 
    15     // Symbol.keyFor(); 搜索全局中是否有Symbol.for定义的变量,如果有返回  如果没有返回undefined
    16     console.log(Symbol.keyFor(name1));   //name
    17 
    18     console.log(Symbol.keyFor(name));  //undefined
    19 
    20 </script>

      

      

  • 相关阅读:
    mac shell终端编辑命令行快捷键——行首行尾
    mac appium 启动genymotion
    mac eclipse 执行adb 命令,提示command not fount
    java jsch 登录linux系统避免手动输入Yes 或Always
    mac 安装android sdk
    内容选择器
    增强基本选择器[selector_3.html]
    层次选择器[selector_2.html]
    基本选择器
    jquery 入门与知识
  • 原文地址:https://www.cnblogs.com/qianqiang0703/p/13612383.html
Copyright © 2020-2023  润新知