• symbol详解


    1.symbol概念:数据类型,不是函数,表示不会重复的值
    2.for和keyFor
    3.symbol作用

    定义
    let s1 = Symbol('first');
    let s2 = Symbol('second');
    
    console.log(s1 === s2)
    
    console.log(s1,s2)
    
    //重复使用某个唯一的symbol
    let s1 = Symbol('first');
    
    Symbol.for定义后,会在全局注册一个key-symbol的键值对,后面可以通过key来获取生成的symbol
    let s2 = Symbol.for('second')
    
    let s3 = Symbol('first')
    let s4 = Symbol.for('second');
    let s5 = Symbol.for('first');
    
    console.log(s1 === s3) //false
    console.log(s2 === s4) //true
    console.log(s1 === s5) //false
    
    
    Symbol.keyfor通过某个symbol值,获取对应的key值
    symbol.for是通过key来找symbol,正好与上面相反
    
    Symbol.keyFor(s1) //undefiend
    Symbol.keyFor(s2) //second
    
    
    Symbol的使用
    继承的时候
    
    
    let obj = {
        username:'tom',
        age:19,
        sex:'man',
        username:'mickey'
    }
    
    console.log(obj)
    
    ==============
    let username = Symbol();
    let obj = {
        username:'tom',
        age:19,
        sex:'man',
        [username]:'mickey'
    }
    
    console.log(obj)
    
    //symbol不能被for-in/for-of 所遍历,需要reflect来遍历
    for(let filed in obj){
        console.log(filed) //symbol值不能打印
    }
    
    for(let [key,value] of Object.entries(obj)){
        console.log(key,value); //symbol值不能打印
    }

     

     

  • 相关阅读:
    qt 学习(三)消息基础
    qt学习(二)控件
    sqlserver学习_01
    java对文件操作--01
    js 将json字符串转换为json对象的方法解析
    实现动态代理(Java和spring)
    mysql_01_游标的使用
    java实现多文件上传01
    oracle-2_dblink的创建和使用
    sqlserver学习3---sql函数
  • 原文地址:https://www.cnblogs.com/lisa2544/p/15654628.html
Copyright © 2020-2023  润新知