JS每日一题:Es6中新增的数据类型有哪些?使用场景?
栏目: JavaScript · 发布时间: 6年前
内容简介:Es6中新增的数据类型有哪些?使用场景?es6中新增一种原始数据类型Symbol,最大的特点是唯一性,Symbol值通过Symbol函数生成, 在es5中对象的属性都是字符串,我们使用他人定义的对象,然后去新增自己的属性,这样容易起冲突覆盖原有的属性, Symbol也可以看成为一个字符串,不过这个字符能保证是独一无二的基本示例:
20190125问:
Es6中新增的数据类型有哪些?使用场景?
es6中新增一种原始数据类型Symbol,最大的特点是唯一性,Symbol值通过Symbol函数生成, 在es5中对象的属性都是字符串,我们使用他人定义的对象,然后去新增自己的属性,这样容易起冲突覆盖原有的属性, Symbol也可以看成为一个字符串,不过这个字符能保证是独一无二的
基本示例:
// Object
const obj = {
name: 'JS'
}
obj.name = 'JS每日一题'
// Symbol
const name = Symbol('name') // 这里的参数没有特殊意义,可以看成为Symbol加了一个标记
obj[name] = 'JS每日一题'
Symbol用法
Symbol 目前有多种写法
// 一
const title = Symbol()
const obj = {}
obj[title] = 'JS每日一题'
// 二
const obj = {
[title]: 'JS每日一题'
}
// 三
Object.defineProperty(obj, title, { value: 'JS每日一题'})
obj[title] // 输出的结果都为JS每日一题
这里注意一下,Symbol 做为属性名时,不能用点去读取
obj.title // undefined
Symbol作为属性名,只有通过Object.getOwnPropertySymbols 方法返回
const attrs = Object.getOwnPropertySymbols(obj) // [Symbol[title]]
Symbol.for()
如果我们想要重复Symbol可以使用Symbol.for, Smybol.for()及Smybol()的区别在于Symbol.for()会先去查找全局下有没有声明过,如果有就返回该值,没有就新建一个,Symbol()每一次调用都会新建一个
代码理解:
const title = Symbol.for('JS每日一题')
....Symbol.for('JS每日一题') //调用多次都是使用的第一次声明的值
Symbol.for('JS每日一题') === Symbol.for('JS每日一题') // true
const title = Symbol('JS每日一题')
Symbol('JS每日一题') === Symbol('JS每日一题') // false
总结
Symbol的特点
- 独一无二
- 不能隐式转换
- 不能与其它数据类型做运算
- 不能使用点运算符进行操作
ps: 今天答题的小伙伴多次都提到了map,set,,补充一下,新增的数据类型只有Symbol一种,map,set是新增的数据结构 ~_~
关于JS每日一题
JS每日一题可以看成是一个语音答题社区
每天利用碎片时间采用60秒内的语音形式来完成当天的考题
群主在次日0点推送当天的参考答案
- 注 绝不仅限于完成当天任务,更多是查漏补缺,学习群内其它同学优秀的答题思路
以上所述就是小编给大家介绍的《JS每日一题:Es6中新增的数据类型有哪些?使用场景?》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- Redis:基础数据类型应用场景
- react-组件类型及使用场景
- 关于redis的几件小事(三)redis的数据类型与使用场景
- 重学 Java 设计模式:实战策略模式「模拟多种营销类型优惠券,折扣金额计算策略场景」
- Redis全方位详解--数据类型使用场景和redis分布式锁的正确姿势
- HBase场景 | 对比MySQL,一文看透HBase的能力及使用场景
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Web Development Recipes
Brian P. Hogan、Chris Warren、Mike Weber、Chris Johnson、Aaron Godin / Pragmatic Bookshelf / 2012-1-22 / USD 35.00
You'll see a full spectrum of cutting-edge web development techniques, from UI and eye candy recipes to solutions for data analysis, testing, and web hosting. Make buttons and content stand out with s......一起来看看 《Web Development Recipes》 这本书的介绍吧!