ES6初步了解原始数据类型Symbol的用法

 更新时间:2023年10月24日 15:02:06   作者:远近高低各不同  
ES6中为我们新增了一个原始数据类型Symbol,大家是否知道Symbol可以作用在哪?用来定义对象的私有变量如何写入对象,本文对ES6 Symbol的用法介绍的非常详细,需要的朋友参考下吧

ES6中为我们新增了一个原始数据类型Symbol,让我为大家介绍一下吧!
Symbol它表示是独一无二的值
Symbol要如何创建
第一种创建方式:

    let sy = Symbol()

第二种创建方式:

    let sy = Symbol.for()

具体独一无二在哪呢?它们的地址不相同。

    let sy = Symbol("name")
    let sy1 = Symbol("name")
    console.log(sy === sy1) //false

但如果我们使用Symbol.for创建

    let sy = Symbol.for("name")
    let sy1 = Symbol.for("name")
    console.log(sy === sy1) // true

Symbol不能与其他数据进行运算

    let sy = Symbol()
    console.log(sy + 1) //报错
    console.log(sy > 1) //报错
    console.log(sy + "1") //报错

Symbol可以作用在哪呢?
用来定义对象的私有变量
如何写入对象?
第一种:

    let sy = Symbol("sy1")
    const obj = {}
    obj[sy] = "私有的"
    console.log(obj)

第二种:

    let sy = Symbol("sy1")
    const obj = {
        [sy] : "私有的"
    } 
    console.log(obj)

第三种:

    const obj = {
        sy : Symbol("私有的")
    } 
    console.log(obj)

我们可以用keyFor来获取Symbol.for()创建的值

    let sy = Symbol.for("hello")
    console.log(Symbol.keyFor(sy))//hello

我们怎么获取呢?可以使用 对象[ ]的方法取到
记住取Symbol的值时,不能用点(.)取

//获取成功
console.log(obj[sy]) //私有的

我们用点(.)取值试一下,取到undefined

console.log(obj.sy) //undefined

我们该如何循环取到Symbol
我们用对象的for in方法试一试
由此可见,取不到Symbol

    let sy = Symbol("hello")
    const obj = {
        name:"张三",
        age:18,
        
    }
    obj[sy] = "私有的"
    for(let k in obj) {
        console.log(obj) //{name: '张三', age: 18, Symbol(hello): '私有的'}
        console.log(k) //name age
        console.log(obj[k]) //张三 18
    }

我们使用getOwnPropertySymbols()

    let sy = Symbol("hello")
    const obj = {
        name:"张三",
        age:18    
    }
    obj[sy] = "私有的"
    let a = Object.getOwnPropertySymbols(obj)
    console.log(a)

到此这篇关于ES6初步了解原始数据类型Symbol的用法的文章就介绍到这了,更多相关ES6 Symbol的用法内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 简单谈谈gulp-changed插件

    简单谈谈gulp-changed插件

    这篇文章主要介绍了关于gulp-changed插件的相关资料,文中介绍的还是相对详细的,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-02-02
  • JavaScript获得指定对象大小的方法

    JavaScript获得指定对象大小的方法

    这篇文章主要介绍了JavaScript获得指定对象大小的方法,涉及javascript针对元素遍历与属性操作的相关技巧,需要的朋友可以参考下
    2015-07-07
  • 基于javascript制作微信聊天面板

    基于javascript制作微信聊天面板

    这篇文章主要为大家详细介绍了基于javascript制作微信聊天面板的相关资料,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-03-03
  • JavaScript对象拷贝与Object.assign用法实例分析

    JavaScript对象拷贝与Object.assign用法实例分析

    这篇文章主要介绍了JavaScript对象拷贝与Object.assign用法,结合实例形式分析了javascript深拷贝与浅拷贝以及Object.assign的功能与相关使用技巧,需要的朋友可以参考下
    2018-06-06
  • JavaScript股票的动态买卖规划实例分析上篇

    JavaScript股票的动态买卖规划实例分析上篇

    这篇文章主要介绍了JavaScript对于动态规划解决股票问题的真题例举讲解。文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-08-08
  • JavaScrip如果基于url实现图片下载

    JavaScrip如果基于url实现图片下载

    这篇文章主要介绍了JavaScrip如果基于url实现图片下载,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-07-07
  • 有关suggest快速删除后仍然出现下拉列表的bug问题

    有关suggest快速删除后仍然出现下拉列表的bug问题

    写suggest的时候,有时我们快速删除输入框的文字后,但是suggest下拉列表还有出现,导致的原因是因为ajax异步请求造成的,下面通过本文给大家分享下解决方法,感兴趣的朋友一起看看
    2016-12-12
  • 前端下载文件时如何后端返回的文件流一些常见方法

    前端下载文件时如何后端返回的文件流一些常见方法

    这篇文章主要介绍了前端下载文件时如何后端返回的文件流一些常见方法,包括使用Blob和URL.createObjectURL创建下载链接,以及处理带有Content-Disposition的下载,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2025-04-04
  • javascript简单计算器 可美化

    javascript简单计算器 可美化

    javascript简单计算器 可美化,需要的朋友可以测试下。参考下实现原理。
    2011-10-10
  • koa2服务端使用jwt进行鉴权及路由权限分发的流程分析

    koa2服务端使用jwt进行鉴权及路由权限分发的流程分析

    这篇文章主要介绍了koa2服务端使用jwt进行鉴权及路由权限分发 ,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-07-07

最新评论