TypeScript学习(3)-新类型Symbols的使用
来源:互联网 发布:淘宝户外运动店铺 编辑:程序博客网 时间:2024/06/05 17:22
Symbols是ECMAScript 2015的新的原生类型。
1.symbol
类型的值是通过Symbol
构造函数创建的。
let sym1 = Symbol();let sym2 = Symbol("key"); // 可选的字符串key
2.Symbols是不可改变且唯一的。
let sym2 = Symbol("key");let sym3 = Symbol("key");sym2 === sym3; // false
3.像字符串一样,symbols也可以被用做对象属性的键。
let sym = Symbol();let obj = {[sym]: "value"};console.log(obj[sym]); // "value"
4.Symbols也可以与计算出的属性名声明相结合来声明对象的属性和类成员。
const getClassNameSymbol = Symbol();class C { [getClassNameSymbol](){ return "C"; }}let c = new C();let className = c[getClassNameSymbol](); // "C"
5.内置symbols:内置symbols用来表示语言内部的行为。以下为这些symbols的列表:
Symbol.hasInstance
方法,会被instanceof
运算符调用。构造器对象用来识别一个对象是否是其实例。
Symbol.isConcatSpreadable
布尔值,表示当在一个对象上调用Array.prototype.concat
时,这个对象的数组元素是否可展开。
Symbol.iterator
方法,被for-of
语句调用。返回对象的默认迭代器。
Symbol.match
方法,被String.prototype.match
调用。正则表达式用来匹配字符串。
Symbol.replace
方法,被String.prototype.replace
调用。正则表达式用来替换字符串中匹配的子串。
Symbol.search
方法,被String.prototype.search
调用。正则表达式返回被匹配部分在字符串中的索引。
Symbol.species
函数值,为一个构造函数。用来创建派生对象。
Symbol.split
方法,被String.prototype.split
调用。正则表达式来用分割字符串。
Symbol.toPrimitive
方法,被ToPrimitive
抽象操作调用。把对象转换为相应的原始值。
Symbol.toStringTag
方法,被内置方法Object.prototype.toString
调用。返回创建对象时默认的字符串描述。
Symbol.unscopables
对象,它自己拥有的属性会被with
作用域排除在外。
阅读全文
0 0
- TypeScript学习(3)-新类型Symbols的使用
- TypeScript学习3--枚举类型
- TypeScript 学习笔记3: ECMAScript 2015 的新特性
- TypeScript-基础类型学习
- TypeScript的学习历程3
- TypeScript的映射类型
- TypeScript Symbols 介绍
- TypeScript Symbols和迭代器
- TypeScript学习2--基本类型
- typescript学习1 基础类型
- Typescript的参数新特性
- TypeScript 类型映射的妙用:
- TypeScript 学习心的
- TYPESCRIPT 学习笔记3
- Field-Symbols的使用
- Field-symbols的使用
- 【学习笔记】熟悉并使用TypeScript的命名空间namespace
- 一步一步学习TypeScript(02.基本类型)
- UnicodeDecodeError: 'ascii' codec can't decode byte 0xe9 in position 0: ordinal not in range(128) 解决
- 水平分库如何做到平滑扩展
- inline和define的特点和区别
- awk 用法
- 运维集群cluster篇------1.集群及LVS简介 、 LVS-NAT集群 、 LVS-DR集群
- TypeScript学习(3)-新类型Symbols的使用
- javascript中的原型
- TP5 微信JS-SDKphp签名
- Elasticsearch(新建索引和文档)
- Django系列——第一个Template
- GreenDao的封装和使用
- 底部导航栏 BottomTabBar
- 20171116
- linux下安装eclipse的C++