TypeScript学习--Symbols
自ECMAScript 2015起,symbol成为了一种新的原生类型,就像number和string一样。
symbol介绍
symbol类型的值是通过Symbol构造函数创建的。
let sym1 = Symbol();let sym2 = Symbol("key"); // 可选的字符串key
Symbols是不可改变且唯一的。
let sym2 = Symbol("key");
let sym3 = Symbol("key");sym2 === sym3; // false, symbols是唯一的
像字符串一样,symbols也可以被用做对象属性的键。
let sym = Symbol();let obj = {[sym]: "value"
};console.log(obj[sym]); // "value"
Symbols也可以与计算出的属性名声明相结合来声明对象的属性和类成员。
const getClassNameSymbol = Symbol();class C {[getClassNameSymbol](){return "C";}
}let c = new C();
let className = c[getClassNameSymbol](); // "C"
众所周知的Symbols
除了用户定义的symbols,还有一些已经众所周知的内置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作用域排除在外。
TypeScript学习--Symbols相关推荐
- 最全的TypeScript学习指南
大家好,今天给大家带来 某机构教研总监陆神的开年之作<最全TypeScript学习指南>可以说是非常的细致.全面 TypeScript 是由微软2012年推出的,自由和开源的编程语言.这门 ...
- RUST直接升钢指令_[译]参照TypeScript学习Rust-part-1
[译]参照TypeScript学习Rust-1 · 前端在线regx.vip 对于前端,笔者比较认可Rust作为前端开发技术栈投资的,本文系列翻译旨在分享.学习Rust这门语言. Rust常常被认为 ...
- TypeScript学习笔记3:运算符
TS 和 JS 相对比的优势 TypeScript的安装步骤.运行问题及代码的简单运行 TypeScript学习笔记1:变量赋值及书写方式 TypeScript学习笔记2:数据类型 文章目录 运算符 ...
- TypeScript学习笔记2:数据类型
TS 和 JS 相对比的优势 TypeScript的安装步骤.运行问题及代码的简单运行 TypeScript学习笔记1:变量赋值及书写方式 TypeScript学习笔记2:数据类型 文章目录 数据类型 ...
- TypeScript学习笔记1:变量赋值及书写方式
TS 和 JS 相对比的优势 TypeScript的安装步骤.运行问题及代码的简单运行 TypeScript学习笔记1:变量赋值及书写方式 TypeScript学习笔记2:数据类型 文章目录 变量赋值 ...
- Typescript 学习笔记七:泛型
中文网:https://www.tslang.cn/ 官网:http://www.typescriptlang.org/ 目录: Typescript 学习笔记一:介绍.安装.编译 Typescrip ...
- typescript 接口 java_[Java教程]【TypeScript】TypeScript 学习 2——接口
[Java教程][TypeScript]TypeScript 学习 2--接口 0 2015-06-19 12:00:28 在 TypeScript 中,接口是用作约束作用的,在编译成 JavaScr ...
- TypeScript 学习一 参数,函数,析构表达式
1,TypeScript是由微软开发的,不过新出的Angular2框架就是谷歌公司由TypeScript语言编写的,所以现在TypeScript是有微软和谷歌一起支持的: 2,TypeScript在j ...
- Typescript 学习笔记一:介绍、安装、编译
前言 整理了一下 Typescript 的学习笔记,方便后期遗忘某个知识点的时候,快速回忆. 为了避免凌乱,用 gitbook 结合 marketdown 整理的. github地址是:ts-gitb ...
- TypeScript学习总结
TypeScript学习总结 前言 一.TypeScript是什么? 二.JavaScript 与 TypeScript 的区别 三.TypeScript基础 3.3.TypeScript 基础语法 ...
最新文章
- Stylus插件开发教程
- c语言调用视频播放软件,C语言播放视频
- elif在python中啥意思_python中elif 结构语句怎么判断?
- 阿里巴巴技术专家三画:如何画好架构图
- java 字节码增强原理_深入浅出Java探针技术1--基于java agent的字节码增强案例
- 钢体pdc钻头计算机辅助设计和绘图,PDC钻头三维设计软件的研究与设计
- Y_CLIENT_QHD_504 role in GM6 ZSAP_CRM_BCR_SALESREP_DAIDE
- node事件循环 EventEmitter 异步I/O Buffer缓冲区 模块
- 服务器迁移虚拟化实施方案,虚拟化实施方案
- C++: find()函数的注意事项
- 还不知道如何使用 IDEA ?教你三招快速掌握 IDEA
- 推荐一款MD神器吧:重度MD用户必备神器
- 小米浏览器禁止java,如何禁止小米手机浏览器中弹出窗口广告
- SAP FI组织结构及概念
- 现代网页的灵魂 —— JavaScript
- [失败]uuv_simulator在台式机_虚拟环境下会崩溃的问题[失败]
- 在线电子书阅读微信小程序 毕业设计(1)首页
- 循环结构(打印图形专项练习)
- Win2003系统部署SSL证书(部署https教程)
- go语言数据类型之切片slice
热门文章
- 自定义 SpringBoot Banner 图案
- 猜数字游戏(伪随机数对猜数字游戏的影响)
- 14年macmini装双硬盘_2011中Mac Mini详尽拆解 可装两块硬盘
- 开源私有云盘python_搭建Windows版Seafile开源私有云盘
- 美团饿了么外卖五折优惠券蓝海项目,已有人推广赚7万,赶紧赚一波。(饿了么美团外卖红包小程序搭建教程)
- 利用arcmap提取河流中心线
- 关于未来趋势的几点预测:
- Python mysql的常用操作
- 联盛德 HLK-W806 (一): Ubuntu20.04下的开发环境配置, 编译和烧录说明
- c语言输入坐标三角形周长面积,3.1.7计算三角形周长和面积