• ES6深入浅出-10 ES6新增的数据类型-1.Symbol与隐藏属性







    ES5现有的数据类型。7种数据类型。

    新的类型是属于Object
    最普通的类型。plain object
    数组array
    函数function
    下面这些都属于Object类型。



    今天要讲的
    set类型表示集合
    Map就是一个映射关系
    TypedArray有类型的数组。

    今天讲的内容都是不常用的内容。大体了解一下就可以了。平时写代码很少用到这几种类型。




    不能用new Symbol()。要不会报错。

    每个值都是不相等的,




    obj的属性名不管怎么写都是字符串。除了字符串,还可以是symbol

    它是一个基本的数据类型,就是它不是一个复杂的数据类型。


    上面是基本数据类型,只有Object是复杂数据类型。

    Symbol是一种基本的数据类型,归类就放在上面。

    声明a为Symbol()类型,用typeof a 看下a的数据类型 就是symbol类型的


    声明数字n。那么n的typeof就是 number类型的

    可留空


    Symbol的值是唯一的。a和b还是不相等的

    a等于Symbol('xxxx'),b也等于Symbol('xxxx') 。a和b都是基本数据类型,为什么a和b不相等呢???理论上来说应该基本相等。
    symbol的目的是作为属性



    简化可以理解symbol为全局唯一的字符串。但是你永远不知道字符串里面藏的是什么。

    下面定义了name和age的属性,我能用这两个属性,别人也能用这两个属性。如果我把这个对象传给另一个函数。另一个函数就可以调用name和age。没有任何的隐私可言。

    我想用拥有一个属性,只有我写的时候,我自己能访问,别人访问不了,如果没有symbol是做不到的。对象的所有属性都是字符串。
    用下划线name做隐藏属性 ,这是自欺欺人。所以ES6之前做不到属性的隐藏。


    首先使用一个作用域,花括号括起来



    我想用上面的变量a。那么就需要把属性括起来。

    把object这个对象挂在window.object上。

    在花括号外面访问a是访问不到的,在外面访问object是可以访问的到的。

    访问a属性 ,访问不到。虽然变量叫做a但是 它是一个symbol类型的


    无论如何都读取不到这个隐藏属性。


    只能这一块代码内引用,变量a的属性。


    symbol可以创造一个隐藏属性。

    总结

    结束

  • 相关阅读:
    CEO良言:创业就请在29岁前做富翁
    在酒桌上看出她是哪种女人!
    巴菲特的人生财富课
    曹操的领导力:羊群变狮群(领导艺术终极体现)
    商业模式木桶短板原理与长板原理
    这三种力量,让你的人生从此大不一样……
    都市男女的30句妙语叹息
    郎咸平:诸葛亮是一名优秀的企业家吗?
    做小生意,解决生活中的问题:创业路上的成功感悟
    100个成功经验(价格不菲的培训课程笔记摘要)
  • 原文地址:https://www.cnblogs.com/wangjunwei/p/11841154.html
Copyright © 2020-2023  润新知