博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
es6 Symbol
阅读量:6986 次
发布时间:2019-06-27

本文共 1317 字,大约阅读时间需要 4 分钟。

1.Symbol 值通过Symbol 函数生成,凡是属性名属于Symbol 类型,就是
  独一无二的,可以保证不会与其他属性名冲突。
      // 没有参数的时候
    let s1 = Symbol();
    let s2 = Symbol();
    s1 === s2; // false
      // 有参数的情况
    let s1 = Symbol('foo');
    let s2 = Symbol('foo');
    s1 === s2 // false
2.作为属性名的 Symbol
  由于每个Symbol 值都是不相等的,用于对象的属性名,就能保证不会重复出现。
    let mySymbol = Symbol();
      // 第一种写法
    let a = {};
    a[mySymbol] = 'Hello';
      // 第二种写法
    let a = {
      [mySymbol]: 'Hello'
    }
      // 第三种写法、
    let a = {};
    Object.definePropert(a,mySymbol,{value: 'Hello!'})
    a[mySymbol] // "Hello!"
 
 
3.属性名的遍历
    Symbol 作为属性名,该属性不会出现在for...in,for...of 循环中,也不会出现在Object.keys(),
    Object.getOwnPropertyNames(),JSON.stringify() 返回。
    只有Object.getOwnPropertySymbols 方法可以获取指定对象的所有Symbol 属性名。
      const obj = {};
      let a = Symbol('a');
      let b = Symbol('b');
 
      obj[a] = 'Hello';
      obj[b] = 'World';
      const objectSymbols = Object.getOwnPropertySymbols(obj)
      console.log(objectSymbols) // [Symbol(a),Symbol(b)]
 
4.Es6 提供内置 Symbol.
    Symbol.hasInstance Symbol.isConcatSpreadable Symbol.species
    Symbol.match Symbol.replace Symbol..split Symbol..iterator
    Symbol.toPrimitive Symbol.toStringTag
 
我的博客即将搬运同步至腾讯云+社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan

转载于:https://www.cnblogs.com/nmxs/p/8066097.html

你可能感兴趣的文章
.NET HttpPost 上传文件图片到服务器
查看>>
[perl] 正则表达式实现多模式匹配
查看>>
RCP之病人信息系统开发总结(1):数据库设计
查看>>
js数组操作,拼写好像,没看清楚就容易出错的。
查看>>
C# winform搜索提示的一些想法
查看>>
table的thead/tbody/tfoot/tr/th/td
查看>>
Delphi多媒体设计之TMediaPlayer组件(五)
查看>>
基于JDK动态代理和CGLIB动态代理的实现Spring注解管理事务(@Trasactional)到底有什么区别。...
查看>>
在新弹出页面下载
查看>>
ASP.NET MVC+EF框架+EasyUI实现权限管理系列之开篇
查看>>
class左边nbu 2414 Please help the poor donkey!
查看>>
[转]UML类图、关系及其JAVA代码
查看>>
销售管理系统设计与实现源码
查看>>
PhotoShop算法原理解析系列 - 像素化---》碎片。
查看>>
oracle卸载清除注册表(彻底卸载)
查看>>
PHP event 事件机制
查看>>
【ARDUINO】HC-05蓝牙不配对问题
查看>>
CentOS ping: unknown host 解决方法
查看>>
设计模式之责任链模式
查看>>
在 Windows 下安装 Oracle 11g XE (Express Edition)
查看>>