• 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还有很多高级的操作
  • 相关阅读:
    JavaScript 深入了解对象中的属性
    JavaScript 开发规范
    vue 项目接口管理
    放大镜特效
    多用户ATM机(面向对象编程)
    浏览器检查块代码
    js中innerHTML与innerText的用法与区别
    symbol访问法及symbor注册表
    最常用的15个前端表单验证JS正则表达式
    数组的遍历
  • 原文地址:https://www.cnblogs.com/sunhang32/p/11890080.html
Copyright © 2020-2023  润新知