您当前的位置: 首页 > 

小志的博客

暂无认证

  • 2浏览

    0关注

    1217博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

es6 Symbol类型

小志的博客 发布时间:2019-10-09 09:15:11 ,浏览量:2

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

一、 创建symbol属性值

  let symb=Symbol();
  console.log(symb);
  console.log(typeof(symb))

在这里插入图片描述

二、每个定义的symbol都是唯一的

  let symb=Symbol();
  let symb2=Symbol();
  console.log(symb==symb2); // 返回false

在这里插入图片描述

三、Symbol实际使用

1、向对象里额外加个属性


  // 定义一个对象
  let symbol=Symbol('id'); // 可以加参数 指定属性名
  let obj={name:'tom',age:18};
  // 假如我们要向对象里额外加个属性
  // obj.id='01' // 以前的写法,不过假如属性很多的时候,可能会出现属性重复
  obj[symbol]='01' // 这样能保证属性不重复
  console.log(obj)

在这里插入图片描述 2、Symbol定义常量

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


  const System_key=Symbol('yuwye98989');
  console.log(System_key);

在这里插入图片描述 3、Symbol.for() 全局搜索指定key的Symbol,找到的话,就返回该Symbol,找不到,就新建一个

console.log(Symbol("xiaozhi") === Symbol("xiaozhi"));      // false
console.log(Symbol.for("hello") === Symbol.for("hello"));     // true

在这里插入图片描述 4、Symbol.keyFor() 返回一个已登记的 Symbol 类型值的 key ,用来检测该字符串参数作为名称的 Symbol 值是否已被登记。


  let key = Symbol.for("hello world !");
  console.log(Symbol.keyFor(key)); // 返回bar1

在这里插入图片描述

关注
打赏
1661269038
查看更多评论
立即登录/注册

微信扫码登录

0.0441s