十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
这篇文章将为大家详细讲解有关ES6中Symbol的使用方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
为昌宁等地区用户提供了全套网页设计制作服务,及昌宁网站建设行业解决方案。主营业务为成都网站建设、成都网站制作、昌宁网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!
1、Symbol是ES6新增的数据类型,它提供独一无二的值
{ // 声明,Symbol声明的变量是唯一的 let a1 = Symbol(); let a2 = Symbol(); console.log(a1 === a2); // false // Symbol.for()接收一个参数,作为key值 // 使用for方法时,会检查这个key值在全局是否注册 // 如果注册过就返回这个值,否则调用Symbol生成新的独一无二的值 let a3 = Symbol.for('a3'); let a4 = Symbol.for('a3'); console.log(a3 === a4); // true }
2.在对象中声明Symbol类型的属性
{ let a1 = Symbol.for('abc'); let obj = { [a1]: '123', 'abc': '345', 'df': '456', }; console.log(obj); // {abc: "345", df: "456", Symbol(abc): "123"} }
3.Symbol的遍历
{ let a1 = Symbol.for('abc'); let obj = { [a1]: '123', 'abc': 345, 'df': 456, }; // let of(或者for in)循环拿不到 以Symbol作为属性的值 for (let key of Object.keys(obj)) { console.log(key); // abc df } // 只拿到以Symbol作为属性的值,getOwnPropertySymbols返回一个数组 Object.getOwnPropertySymbols(obj).forEach(function (item) { console.log(obj[item]); // 123 }); // 对象全部属性和值都拿到,包括Symbol。Reflect.ownKeys返回一个数组 Reflect.ownKeys(obj).forEach(function (item) { console.log(item, obj[item]); // abc 345 df 456 Symbol(abc) "123" }); }
关于ES6中Symbol的使用方法就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。