美文网首页
ES6学习-6.Symbol和Symbol属性

ES6学习-6.Symbol和Symbol属性

作者: Zip_Wang | 来源:发表于2018-01-30 11:50 被阅读9次

原始类型:Symbol,用于创建必须通过Symbol才能引用的属性,提供了一些私有性和不易覆盖的特性。

1、创建Symbol

symbol在创建的时候,可以接受一个参数,用来描述这个Symbol的文本字符串。

2、Symbol的使用方法

所有使用可计算属性名的地方,都可以使用Symbol,看以下代码:

3、Symbol共享体系

如果想要创建一个共享的Symbol,就使用Symbol.for()方法,它接受一个参数,用来创建Symbol的字符串标识符。Symbol.for()方法首先在全局Symbol注册部查找是否存在Symbol,存在则直接返回,不存在则创建一个新的。例如一下代码:

4、Symbol与类型强制转换

Symbol不能强制转换成字符串和数字类型。例如一下代码:

5、Symbol属性检索

Object.getOwnPropertySymbols()方法来检索对象中的Symbol属性。例如:

6、通过well-known Symbol暴露内部操作

(1)Symbol.hasInstance  一个在执行instanceof时调用的内部方法,用于检测对象的继承信息。

(2)Symbol.isConcatSpreadable  一个布尔值,用于表示当传递一个集合作为Array.prototype.concat()方法的参数时,是否英爱将集合内的元素规整到同一层级。

(3)Symbol.iterator  一个繁华迭代器的方法。

(4)Symbol.match  一个调用String.prototype.match()方法时调用的方法,用于比较字符串。

(5)Symbol.replace  一个调用String.prototype.replace()方法时调用的方法,用于替换字符串的子串。

(6)Symbol.search  一个调用String.prototype.search()方法时调用的方法,用于在字符串中定位子串。

(7)Symbol.species  用于创建派生对象的构造函数。

(8)Symbol.split  一个在调用String.prototype.split()方法时调用的方法,用于分割字符串。

(9)Symbol.toPrimitive  一个返回对象原始值的方法。

(10)Symbol.toStringTag  一个在调用Object.prototype.toString()方法时使用的字符串,用户创建对象描述。

(11)Symbol.unscopables  一个定义了一些不可被with语句引用的对象属性名称的对象集合。

重写这些方法,可以改变对象内部的默认行为,从而可以实现一些自定义的方法和行为。

相关文章

  • ES6学习-6.Symbol和Symbol属性

    原始类型:Symbol,用于创建必须通过Symbol才能引用的属性,提供了一些私有性和不易覆盖的特性。 1、创建S...

  • 深入理解ES6:6.Symbol 和 Symbol 属性

    在 ECMAScript 5 及早期版本中,语言包含 5 种原始类型:字符串型、数字型、布尔型、null 和 un...

  • 【ES6 笔记】Symbol和Symbol属性

    回忆一下JS中的原始类型:字符串型、数字型、布尔型、null和undefined。 ES6中引入了第6种原始类型:...

  • 内置Symbol属性

    内置Symbol属性 Symbol是ES6引入的内置(built-in)全局函数,它自带一些内置好的属性。下面依次...

  • ES6复习-Symbol

    写在前面: ES6中对象的属性名都是字符串,容易造成重名,污染环境。 Symbol 的特点: Symbol 属性的...

  • 16- Symbol 类型

    1、Symbol类型 ES5 的对象属性名都是字符串,这容易造成属性名的冲突。ES6 引入Symbol类型,就是为...

  • Symbol类型

    Symbol Symbol是ES6新增的一种原始数据类型, Symbol函数生成的每个属性的名字都是唯一的

  • JS新特性

    ES ES5 ES6 箭头函数 Promise Symbol属性 Iterator Generator async...

  • 有关Es6新增类型symbol

    ES5的对象属性名都是字符串,这容易造成属性名的冲突,为了解决这种冲突,ES6引入了symbol.symbol:表...

  • ES6 符号

    普通符号 es6 规定,现在属性名除了是字符串之外,还有了一个属性名 symbol 符号是 ES6 新增的一个数据...

网友评论

      本文标题:ES6学习-6.Symbol和Symbol属性

      本文链接:https://www.haomeiwen.com/subject/zgtfzxtx.html