ES6-symbol-创建symbol

  // 1. ES 6 为引入 Symbol 类型?// 为了确保每个属性的名称都是独一无二的,从根本上防止属性名的冲突。// 引入 Symbol 类型之后,对象的属性名就有了两种类型,一种是 String 类型的数据,另一种就是 Symbol 类型的数据// 2. 怎样创建 Symbol 类型的数据呢?// 其他 5 种原始类型都有各自的字面量形式,而 Symbol 没有字面量形式,但是可以通过全局的 Symbol 函数创建一个 Symbol 类型的数据。let firstName = Symbol();let lastName = Symbol();let obj = {};obj[firstName] = '李金健';console.log(obj)console.log(obj[firstName])console.log(obj[lastName])// 上面的代码创建了一个名为 firstName 的 Symbol,用它作为 obj 对象的属性名,并为属性复制为 '李金健',// 每当你想访问这个属性时一定要使用最初定义的 Symbol。// 例如 obj[firstName] 可以访问到之前添加的属性值,而使用另外一个 Symbol 类型的值 lastName 就不能访问。// 也就是说,你定义属性时使用的是哪个 Symbol,访问属性时也要使用使用哪个 Symbol。// 3. Symbol 函数接收一个可选参数,它可以让你添加一段文本,描述即将创建的 Symbol,方便我们进行阅读和调试。let firstName = Symbol('This is my first name');let obj = {};obj[firstName] = '刘逸云';console.log(obj[firstName])console.log(firstName)// 4. 我们可以使用 typeof 操作符检测变量的值是否为 Symbol 类型。let firstName = Symbol('This is my first name');console.log(typeof firstName);   // 'symbol'// 5. Symbol 的使用场景// 所有用到可计算属性名的地方,都可以用 Symbol。例如:// 1> 对象字面量的可计算属性名中let firstName = Symbol('This is my first name');let obj = {[firstName]: '王亚坡'};// 2> 在 Object.defineProperty() 方法中使用let lastName = Symbol('This is my last name')Object.defineProperty(obj, lastName, { value: '尼古拉斯' });// 3> 在 Object.defineProperties() 方法中使用let firstName = Symbol('This is my first name');let lastName = Symbol('This is my last name');let obj = {};Object.defineProperties(obj, {[firstName]: {value: '王亚坡',writable: false     },[lastName]: {value: '尼古拉斯',writable: false }})console.log(obj[firstName])console.log(obj[lastName])console.log(obj)

ES6-symbol-创建symbol相关推荐

  1. 【es6】教程 Symbol数据以及迭代器和生成器

    [es6]学习 知识点1,Symbol的介绍与创建 知识点2,向对象添Symbol类型的属性 知识点3,迭代器,Iterator 知识点4,生成器-函数 生成器函数的参数传递 生成器函数实例 生成器函 ...

  2. ES6入门之Symbol

    ES5对象属性名都是字符串容易造成属性名的冲突. eg:var a = { name: 'lucy'};a.name = 'lili';这样就会重写属性 ES6引入了一种新的原始数据类型Symbol, ...

  3. android log 如何获取double类型后小数点的值_【ES6基础】Symbol介绍:独一无二的值...

    开篇 ES6之前我们都清楚JS有六种数据类型:Undefined.Null.布尔值(Boolean).字符串(String).数值(Number).对象(Object),今天笔者讲的Symbol类型是 ...

  4. ES6 中的 Symbol 是什么?

    前言 记得刚找工作那会,几种数据类型是必问题,当时的答案一般都是七种--字符串(String).数字(Number).布尔(Boolean).数组(Array).对象(Object).空(Null). ...

  5. ES6 Symbol类型的应用、symbol属性名的遍历、Symbol.for()Symbol.keyFor()

    目录 Symbol类型 介绍 Symbol.prototype.description Symbol的应用 1 给对象内追加属性 2 消除魔术字符串 symbol属性名的遍历 Symbol.for() ...

  6. JavaScript基础: ES6新特性---Symbol

    简介 在ES6中引入的一种新的基本数据类型Symbol.这个类型不像是number或者String让人使用起来那样顺手好理解,为什么是这样呢?是不是因为其是新特性,所以不熟是正常的? 自然不是因为箭头 ...

  7. 【ES6基础】Symbol介绍:独一无二的值

    开篇 ES6之前我们都清楚JS有六种数据类型:Undefined.Null.布尔值(Boolean).字符串(String).数值(Number).对象(Object),今天笔者讲的Symbol类型是 ...

  8. 【ES6(2015)】Symbol

    文章目录 1. 声明方式 2. Symbol.for() 3. Symbol.keyFor() 4. 作为属性名 5. 属性遍历 6. 消除魔术字符串 ES6 引入了一种新的原始数据类型 Symbol ...

  9. ES6 里的symbol

    <!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8" ...

  10. ADS(Advanced Design system)创建Symbol并放置

    前言 先进设计系统 Advanced Design system(ADS)Agilent Technologies 是领先的电子设计自动化软件,适用于射频.微波和信号完整性应用. 在很多时候,我们设计 ...

最新文章

  1. 搭建测试环境属于软件文档,搭建软件测试环境应注意的几个问题
  2. mysql不使用自增_自增ID有什么坏处?什么样的场景下不使用自增ID?
  3. Elasticsearch-04 ES中的术语和基本用法
  4. 国籍 mysql_国籍表SQL,按首字母升序排序
  5. 菜鸟涂鸦作品展_No.1
  6. java学习class5
  7. asp.net 微信小程序源码 微信分销源码 源文件完全开源 源码
  8. Win10为什么电脑没有本地组策略编辑器
  9. 北方工业大学计算机科学与技术复试分数线,北方工业大学计算机学院 2016 年硕士生复试结果.pdf...
  10. C语言实现2048游戏(分文件编译)
  11. java随机生成迷宫游戏地图_java随机生成迷宫(图的深度优先遍历)
  12. strtok()函数详解!
  13. Altium Designer--如何将底层视图进行翻转
  14. 计算机专业大学期间有必要参加很多竞赛吗?
  15. linux rsync文件夹增量同步
  16. js前端通过身份证号判断年龄、性别、出生日期。
  17. 计算机主板i3 i5区别,装机那些事儿之挑选适合自己的CPU;i3/i5/i7的区别
  18. 计算机编码与解码编码表
  19. SimpleFOC vs code + PlatformIO环境搭建
  20. 焦点对话AMA:Cirus如何重新定义所有权经济 用数据释放时代价值

热门文章

  1. heartbeat+iscsi+mysql实现双机高可用
  2. 回顾Spirng ioc 控制反转
  3. 精准高效估计多人3D姿态,美图北航分布感知式单阶段模型(CVPR 2022)
  4. 完美替代Mask RCNN!BlendMask:实例分割新标杆
  5. 中文场景文字识别技术创新大赛,总奖池5.4万!
  6. 零基础程序员如何快速学会python
  7. vue中this.init用法_Vue中的this.$options.data()和this.$data用法说明
  8. CVPR | 基于LiDAR的3D物体检测新框架
  9. 图像分类最新技术综述论文: 21种半监督、自监督和无监督学习方法一较高低
  10. linux on win原理,linux on win10 上手体验