zoukankan      html  css  js  c++  java
  • symbol

    symbol,代表独一无二的值,即类型为symbol的值,是独一无二的。

    第6种基本类型,类似于字符串。

    let a=Symbol();
    let b= Symbol();
    console.log(typeof a); //symbol
    console.log(a===b) //false;

    通过Symbol函数生成,不能使用new,这是因为原始类型的显式包装器对象自ES6开始已不再支持???,但已有的原始包装器对象,如new Boolean、new String仍然保留。

    可接受一个字符串作为参数,表示对其的描述,主要方便于在控制台显示,及转换为字符串时容易区分

    备注:输出时不带引号

    let a=Symbol ("sa");
    console.log(a); //Symbol(sa)

    用于对象的属性名能防止被覆盖修改,必须用方括号扩住,且无法通过访问属性名或for in 的方式访问到

    Object.getOwnPropertySymbols(对象)能获取到对象的symbol属性数组

    let a= Symbol("aa")
    let b= {
      [a]: 123,
      c: 1  
    }
    for(let i in b){
      console.log(i)  //c
    }
    console.log(Object.getOwnPropertySymbols(b)) //[Symbol[aa]]

     可做数据类型的转换,但不能参与任何运算

    let a= Symbol("aa")
    console.log(a.toString()) //Symbol(aa)
    console.log(a+1) //报错

    Symbol具有唯一性,但如果需要多次使用同一个Symbol,也可全局登记:Symbol.for()

    let a= Symbol.for("sname")
    let b= Symbol.for("sname")
    console.log(a==b) //true

    在全局情况下,也能通过Symbol全局对象获取到参数字符串

    console.log(Symbol.keyFor(a))//sname
  • 相关阅读:
    Ueditor富文本编辑器
    ashx误删后,未能创建类型
    一个菜鸟的ASP.NET观光路线图
    地位尴尬的WebForm、ASP.NET核心知识(10)
    经典排序算法--归并排序
    经典排序算法--快速排序
    经典排序算法--冒泡排序
    经典排序算法--堆排序
    经典排序算法--简单选择排序
    经典排序算法--希尔排序
  • 原文地址:https://www.cnblogs.com/yanze/p/11443397.html
Copyright © 2011-2022 走看看