一、Symbol函数前不能使用new,否则会报错

let s = new Symbol('ss')
console.log(s)
//TypeError: Symbol is not a constructor

二、Symbol函数可以接受一个字符串作为参数,表示对Symbol实例的描述,主要是为了在控制台显示,或者转化为字符串时,比较容易区分。
三、Symbol作为属性,该属性不能出现在for…in,for…of循环中,也不会被Object.keys(),Object.getOwnPropertyNames(),JSON.stringify()返回

let s = Symbol(11)
let obj = {name:"dmc",age: 20,[s]: 'hhhh'
}
for(let i in obj) {console.log(i)
}
//name,age
let s = Symbol(11)
let obj = {name:"dmc",age: 20,[s]: 'hhhh'
}
console.log(Object.keys(obj)) //['name', 'age']
let s = Symbol(11)
let obj = {name:"dmc",age: 20,[s]: 'hhhh'
}
console.log(Object.getOwnPropertyNames(obj)) //['name', 'age']
let s = Symbol(11)
let obj = {name:"dmc",age: 20,[s]: 'hhhh'
}
console.log(JSON.stringify(obj))// {"name":"dmc","age":20}

四、Object.getOwnPropertySymbols方法返回一个数组,成员是当前对象的所有用作属性名的 Symbol 值

let s = Symbol(11)
let obj = {name:"dmc",age: 20,[s]: 'hhhh'
}
console.log(Object.getOwnPropertySymbols(obj))
//[Symbol(11)]

五、Symbol.for 接受一个字符串作为参数,然后搜索有没有以该参数作为名称的 Symbol 值。如果有,就返回这个 Symbol 值,否则就新建并返回一个以该字符串为名称的 Symbol 值。

let s = Symbol.for('hhh')
let s1 = Symbol.for('hhh')
console.log(s === s1) //true

六、Symbol.keyFor方法返回一个已登记的Symbol类型的值的key

let s = Symbol.for('hhh')
let s1 = Symbol.for('hhh')
console.log(Symbol.keyFor(s)) //hhh

Symbol类型的注意点?相关推荐

  1. [JavaScript] 好用的 JavaScript Symbol 类型

    初识Symbol 什么是Symbol? 可以理解它为一个标识,一般情况下用来解决重名问题. let hd = Symbol('hello,dust.') let edu = Symbol('good ...

  2. JavaScript 为什么要有 Symbol 类型?

    摘要: 为什么比怎么用更有意义. 原文:JavaScript 为什么要有 Symbol 类型 作者:前端小智 Symbols 是 ES6 引入了一个新的数据类型 ,它为 JS 带来了一些好处,尤其是对 ...

  3. ES6笔记(4)-- Symbol类型

    系列文章 -- ES6笔记系列 Symbol是什么?中文意思是标志.记号,顾名思义,它可以用了做记号. 是的,它是一种标记的方法,被ES6引入作为一种新的数据类型,表示独一无二的值. 由此,JS的数据 ...

  4. ES6新特性_ES6对象添加Symbol类型属性---JavaScript_ECMAScript_ES6-ES11新特性工作笔记016

    然后我们再来看,给对象添加symbol类型的属性, 这个这样做的目的就是: 保证我们添加的方法或属性是唯一的,因为我们知道 我们的symbol这个属性是有唯一性的. 首先我们有个 let game = ...

  5. Symbol()类型的定义及特点

    前文我们提到了JavaScript中的两种数据类型的存储方式,在说到数据类型的时候,提到了ES6新增的一种数据类型:Symbol类型,这个类型的功能类似于一种标识唯一性的ID.Symbol类型属于Ja ...

  6. Allegro PCB的5种形状Symbol类型

    #1, Allegro PCB的5种形状Symbol类型 Allegro PCB种,有5种类型的Symbol,分别是Package Symbol.Mechanical Symbol.Format Sy ...

  7. 25.JavaScript的Symbol类型、隐藏属性、全局注册表

    文章目录 Symbol类型的使用 Symbol简介 Symbol类型的描述 Symbol不会隐式转字符串 Symbol类似作为对象的属性键 创建Symbol键 for-in中被跳过 隐藏自定义属性 S ...

  8. 简述 Symbol 类型用途

    应用场景1:使用Symbol来作为对象属性名(key) Symbol类型的key是不能通过Object.keys()或者for-in来枚举的,它未被包含在对象自身的属性名集合(property nam ...

  9. 如何实现一个深拷贝(考虑循环引用对象、和symbol类型)

    文章目录 第一步:简单实现 第二步:拷贝数组 第三步:循环引用 1.使用哈希表 2.使用数组 第四步:拷贝 Symbol 第一步:简单实现 其实深拷贝可以拆分成 2 步,浅拷贝 + 递归,浅拷贝时判断 ...

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

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

最新文章

  1. python写一个表白程序带时间_Python 打造最强表白程序
  2. inet_aton和inet_network和inet_addr三者比较-《别怕Linux编程》之五
  3. 深入Java虚拟机:JVM中的Stack和Heap
  4. Socket阻塞与非阻塞,同步与异步、I/O模型
  5. AspectCore中的IoC容器和依赖注入
  6. COLLEGE.sql(复制的时候注意路径!!!)
  7. Vue 3.0暂缓发布,前端同学暂时舒了一口气
  8. python list增删改查_Python 基础list 增删改查 解析
  9. Java追加文本内容到txt文件
  10. Nginx图片防盗链、缓存和压缩的示例
  11. <select> 表单元素
  12. MySQL主从同步(一)——原理详解
  13. 6421B Lab11 为分支机构优化数据访问
  14. kettle MySQL blob_KETTLE BLOB 问题
  15. MYSQL中的TCL语言
  16. ubuntu防火墙,ufw命令
  17. The endpoint reference (EPR) for the Operation not found 可能问题以及解决办法
  18. 内网邮箱pop服务器,如何在POP3邮件服务器中创建用户邮箱
  19. 端口(port)详解
  20. 排水注水java_小学数学重难点:关于《水池注水排水问题》例题详解,考试必备...

热门文章

  1. PID实践笔记-PID浅解及两轮直立车参数调试经验
  2. Android OTA 升级专栏文章导读
  3. 【论文笔记】FedGraph:Federated Graph Learning with Intelligent Sampling
  4. 【深度经验分享】我与伙伴云的成长之路
  5. mac 装双系统win10的 任务管理器
  6. 讲座录播|Kurt Stockinger教授:使用机器构建智能信息系统
  7. 神经网络训练效果不好,神经网络训练的优势
  8. 百度AI利用NLP自然语言处理技术发力智能写作
  9. 一张图搞懂js原型链
  10. 清明节, 说下我对生死的感受