java1234开源博客系统
博客信息

es6 Symbol类型

发布时间:『 2019-07-04 14:24』  博客类别:Vue.js  阅读(2088) 评论(0)

es6 Symbol类型


es5中对象的属性名是都是字符串,容易造成重名;es6引入Symbol数据类型(已有Number 、 String 、 Boolean 、 Objec t、 null 和 undefined 类型);

特性:



// 创建symbol属性值

let sb=Symbol();

console.log(sb);

console.log(typeof(sb))


QQ鎴浘20190704115737.jpg


// 每个定义的symbol都是唯一的

let sb2=Symbol();

console.log(sb==sb2); // 返回false


Symbol实际使用

// 定义一个对象

let symbol=Symbol('address'); // 可以加参数 指定属性名

let obj={name:'jack',age:10};

// 假如我们要向对象里额外加个属性

// obj.address='南京路' // 以前的写法,不过假如属性很多的时候,可能会出现属性重复

obj[symbol]='南京路' // 这样能保证属性不重复

console.log(obj)


因为Symbol具有唯一性,所以我们可以做Symbol定义常量


const System_key=Symbol('114aaa');

console.log(System_key);


Symbol.for()

// Symbol.for() 全局搜索指定key的Symbol,找到的话,就返回该Symbol,找不到,就新建一个

console.log(Symbol("foo") === Symbol("foo"));      // false

console.log(Symbol.for("bar") === Symbol.for("bar"));     // true


Symbol.keyFor()

// Symbol.keyFor() 返回一个已登记的 Symbol 类型值的 key ,用来检测该字符串参数作为名称的 Symbol 值是否已被登记。

let fooKey = Symbol.for("bar1");

console.log(Symbol.keyFor(fooKey)); // 返回bar1


关键字:   es6     Symbol类型  

上一篇:vue事件处理器

下一篇:vue表单处理

关注Java1234微信公众号
博主信息
Java1234_小锋
(知识改变命运,技术改变世界)
Powered by Java1234 V3.0 Copyright © 2012-2016 Java知识分享网 版权所有