• Symbol


    一、主要用途

      1、感觉Symbol值很鸡肋的话,先去理清 '字符串'、'变量名'、'属性名'之间的关系 ;//变量名就是一个代号  主要是:Symbo值可以代替'字符串'成为属性名

      2、保证每个属性是独一无二的,防止属性名冲突;

      3、是函数Symbol()的返回值;

      4、Symbol值可以显式转为字符串;

      5、Symbol值也可以转为布尔值,但是不能转为数值;

    二、Symbol值的创建和获取

      1、Symbol([symbolName]);

      2、Symbol.for(symbolName);

    • 会被登记在全局环境中供搜索
    • 不会每次调用就返回一个新的Symbol类型的值,而是会先检查给定的key是否已经存在,如果不存在才会新建一个值

      3、Symbol.keyFor(symbolName);

    • 返回一个已登记的Symbol类型值的key

    三、作为属性名

      1、不能用"."运算符

      2、在对象的内部,使用Symbol值定义属性时,Symbol值必须放在方括号之中。

      3、Symbol值作为属性名时,该属性还是公开属性,不是私有属性。

    四、消除魔术字符串

      1、魔术字符串:魔术字符串指的是,在代码之中多次出现、与代码形成强耦合的某一个具体的字符串或者数值。

      2、解决办法:写成对象的属性(命名空间),Symbol值

    五、属性名的遍历

      1、Object.getOwnPropertySymbols方法

      返回一个数组,成员是当前对象的所有用作属性名的Symbol值。

      2、Reflect.ownKeys方法可以返回所有类型的键名,包括常规键名和Symbol键名。

      3、以Symbol值作为名称的属性,不会被常规方法遍历得到。我们可以利用这个特性,为对象定义一些非私有的、但又希望只用于内部的方法。

    六、内置的Symbol值

      11个内置的Symbol值,指向语言内部使用的方法。

    All rights reserved please indicate the source if reprint---吓尿了的大肥鼠
  • 相关阅读:
    java依赖注入
    Mac OS 中的 Python(和 NumPy)开发环境设置
    英语巴菲
    经济学原理
    You are beautiful
    大数据之tachyon(未完版)
    机器学习温和指南
    机器学习之回归
    Mac 命令
    批处理--批量打开程序&批量关闭程序
  • 原文地址:https://www.cnblogs.com/realsoul/p/5540194.html
Copyright © 2020-2023  润新知