• js中新增的Symbol


    • 在ES6之前,js的的基本数据类型有String Number Null Boolean undefined Object6中数据类型,Symbol是一种新增加的基本数据类型

    特性

    • Symbol 不需要new关键字,他是原始类型,不是对象
    • Symbol 不论参数是否相等,他返回值都不相等
    var a = Symbol()
    var b = Symbol()
    console.log(a===b) //false
    //参数相等的情况下
    var demo = Symbol('测试')
    var demo1 = Symbol('测试1')
    console.log(demo===demo1) //false
    
    • 可以显示转为字符串
    var obj = Symbol('字符串')
    console.log(typeof String(obj))  //string
    
    • 可以转为布尔值
    • 不能转为数值
      一般代表独一无二的值

    使用

    • 由于他是独一无二的,一般用它作为属性名,常量
    var mySymbol = Symbol()
    // 第一种用法
    var obj = {}
    obj[mySymbol] = 'Hello!'
    //第二种
    var a = {
        [mySymbol]: 'Hello!'
    }
    //获取时需要注意的事项
    //想要获取,不能使用丶,需要使用方括号,因为丶会被认为是一个变量字符串,而不是一个Symbol
    a['mySymbol'] = "Hello!"
    

    例子

    使用Symbol我们可以制作一个switch的分支,并且这个分支不会出现冲突

    const DEBUG = Symbol()
    const ERROR = Symbol()
    switch(type){
        case DEBUG:
            console.log('我是debug状态')
        break;
    
        case ERROR:
            console.log('我是error状态')
        break;
    }
    
    • 上面的这些足够应付一些简单的应用了,当然Symbol还有很多高级的操作
  • 相关阅读:
    【程序员的自我修养】读书笔记
    Notepad++ 正则表达式
    【BI】商务智能
    【BI】OLTP与OLAP的区别
    【Linux】条件判断eq、ne、gt、lt、ge、le
    【shell】shell基础脚本合集
    capture同focus
    c++101rule
    老生常谈,正确使用memset
    C语言的数组名和对数组名取地址
  • 原文地址:https://www.cnblogs.com/sunhang32/p/11890080.html
Copyright © 2020-2023  润新知