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可以创造一个隐藏属性。

总结

结束

ES6深入浅出-10 ES6新增的数据类型-1.Symbol与隐藏属性的更多相关文章

  1. ES6深入浅出-10 ES6新增的数据类型-2.Set与数组去重

    一种新的数据类型,它是对象的一种,Set,很像数组,又不是数组. Set 类型 https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Refe ...

  2. ES6深入浅出-10 ES6新增的数据类型-3.其他类型

    Map类型 Map 类型 https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Map Ma ...

  3. ES6深入浅出-12 ES6新增的API(下)-1.录屏

    String.includes es5里面判断字符串是否存在的方法 search searcg的厉害之处是可以使用正则 match正则的方式 repeat -1遍,就不合法 startsWith 判断 ...

  4. ES6深入浅出-11 ES6新增的API(上)-2.Array新增API

    Array.form 把不是数组的东西变成数组.最常见的就是把伪数组变成数组 那么什么是伪数组 这就是伪数组,因为它不是继承自Array的原型的对象.它只是一个看起来很像数组的数组 只看下面的代码.a ...

  5. ES6深入浅出-11 ES6新增的API(上)-1.Object.assign

    这些都是es6才有的 Object.assign 在a加上三个属性 分别是p1\p2\p3 以前是这么去加 b的三个属性p1.p2.p3就全部复制到a这个对象上了. 把后面的东西放到前面的东西上 两个 ...

  6. ES6深入浅出_汇总贴

    H:\BaiDu\ES6深入浅出-wjw ES 6 新特性一览:https://frankfang.github.io/es-6-tutorials/ 我用了两个月的时间才理解 let https:/ ...

  7. 浅谈ES6新增数据类型:Symbol

    面试中喜闻乐见的问题就是问我们的ES6新增了哪些个新特性 这篇文章一起学习一下新增的数据类型:Symbol JS的原始数据类型:6种Boolean,String,Undefined,NULL,Numb ...

  8. ES6新增的数据类型Map和Set。

    Javascript的默认对象表示方式 {} ,即一组键值对. 但是Javascript的对象有个小问题,就是键必须是字符串.但实际上Number或者其他数据类型作为键也是非常合理的. 为了解决这个问 ...

  9. 理解ES6的新数据类型:Symbol

    ES6之前的数组类型 在ES6之前JS只有6种数据类型,分别是:Undefined.Null.布尔值(Boolean).字符串(String).数值(Number).对象(Object). ES6引入 ...

随机推荐

  1. 用指针形式实现strstr函数

    char * mystrstr(char *dest,char * src){ char *p=null; char * temp=src; while(*dest)//只要不为'\0'就行 { p= ...

  2. python打造漏洞数据导出工具

    功能 [x] 支持导出的数据:IP地址.漏洞名称.风险等级.整改建议.漏洞描述.漏洞CVE编号.漏洞对应端口.漏洞对应协议.漏洞对应服务等. [x] 导出不同端口的同一个漏洞,也就是一个端口对应一个漏 ...

  3. Win10 系统 Mysql 安装

    对于本地开发环境,小型的 Mysql 比较适合本地学习. 本文环境 win10 + mysql8 1.下载 去 Mysql 官网下载安装包 - https://dev.mysql.com/downlo ...

  4. sublime+python3 中文环境

    工具-编译系统-新编译系统 { "cmd": ["C:/Program Files (x86)/Python36-32/python.exe","-u ...

  5. SIGAI机器学习第二十一集 AdaBoost算法2

    讲授Boosting算法的原理,AdaBoost算法的基本概念,训练算法,与随机森林的比较,训练误差分析,广义加法模型,指数损失函数,训练算法的推导,弱分类器的选择,样本权重削减,实际应用. 大纲: ...

  6. mongoDB sh.status() too many chunks to print

    too many chunks to print, use verbose if you want to force print 想要看到详细的信息则需要执行: mongos> sh.statu ...

  7. Servlet实现注册

    1.Servlet实现注册的思路: 2.工程结构 3.功能实现: (1)html实现对数据的收集: <body bgcolor="aqua"> <center&g ...

  8. 数据库应用之--Redis+mysql实现大量数据的读写,以及高并发

    一.开发背景 在项目开发过程中中遇到了以下三个需求: 1. 多个用户同时上传数据: 2. 数据库需要支持同时读写: 3. 1分钟内存储上万条数据: 根据对Mysql的测试情况,遇到以下问题: 1. 最 ...

  9. 【概率论】5-7:Gama分布(The Gamma Distributions Part I)

    title: [概率论]5-7:Gama分布(The Gamma Distributions Part I) categories: - Mathematic - Probability keywor ...

  10. C++2.0新特性(五)——<Rvalue_reference和move语义>

    一.Rvalue_reference(右值引用)和move语义 1.左右值概念区分 左值:表达式结束后依然存在的对象,我们也叫做变量: 右值:表达式结束后就不存在的临时对象. 2.判断左值和右值 能对 ...