Symbol 属性汇总

HTML5 herman 23浏览 0评论

ES6 引入了一些很实用很强大的特性和一些语法。今天说的 Symbol 就是其中一个。
对于这个新特性,很多人估计很少使用它,尤其是可见性封装特别好的时候。但它也有很应用场景的。
Symbol 的语法很简单,属性却有很多。本文总结了Symbol 的众多属性,方便大家参考。

Symbol 数据类型

首先它是 ES6 引入的一个 js 数据类型。熟悉 JavaScript 的都知道,javascript 有七大数据类型。

null, undefined, number, boolean, string, Array、object  
// 基本数据类型:null、undefined、数字、布尔、字符串  
// 复杂数据类型: 数组、对象等  

Symbol 属性

  • Symbol.length:长度属性值为1。
  • Symbol.name :仅Chrome/v8。返回符号描述。
  • Symbol.prototype:描述符号构造函数的原型。
  • Symbol.iterator:迭代 symbols。一个返回一个对象默认迭代器的方法。使用 for…of。
  • Symbol.match:正则表达式 symbols。一个用于对字符串进行匹配的方法,也用于确定一个对象是否可以作为正则表达式使用。使用 String.prototype.match()。
  • Symbol.replace:一个替换匹配字符串的子串的方法. 使用 String.prototype.replace()。
  • Symbol.search:一个返回一个字符串中与正则表达式相匹配的索引的方法。使用String.prototype.search()。
  • Symbol.split:一个在匹配正则表达式的索引处拆分一个字符串的方法.。使用 String.prototype.split()。
  • Symbol.hasInstance:一个确定一个构造器对象识别的对象是否为它的实例的方法。使用 instanceof。
  • Symbol.isConcatSpreadable:一个布尔值,表明一个对象是否应该flattened为它的数组元素。使用Array.prototype.concat()。
  • Symbol.unscopables:拥有和继承属性名的一个对象的值被排除在与环境绑定的相关对象外。
  • Symbol.species:一个用于创建派生对象的构造器函数。
  • Symbol.toPrimitive:一个将对象转化为基本数据类型的方法。
  • Symbol.toStringTag:用于对象的默认描述的字符串值。使用Object.prototype.toString()。
  • Symbol.prototype.constructor:返回创建实例原型的函数. 默认为 Symbol 函数。

Symbol 浏览器兼容性

Symbol 浏览器兼容性

Symbol 还未被大范围支持,推荐大家使用最新的谷歌浏览器进行测试。