当前位置:网站首页>LayaBox---TypeScript---Symbols
LayaBox---TypeScript---Symbols
2022-08-02 10:01:00 【格拉格拉】
目录
1.介绍
自ECMAScript 2015起,symbol成为了一种新的原生类型,就像number和string一样。
symbol类型的值是通过Symbol构造函数创建的。
let sym1 = Symbol();
let sym2 = Symbol("key"); // 可选的字符串keySymbols是不可改变且唯一的。
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"2.众所周知的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作用域排除在外。
边栏推荐
- 云原生应用平台的核心模块有哪些
- Getting Started with SCM from Scratch (1): Summary of Background Knowledge
- MySql千万级分页优化,快速插入千万数据方法
- 程序员的浪漫七夕
- Re23:读论文 How Does NLP Benefit Legal System: A Summary of Legal Artificial Intelligence
- R language ggplot2 visualization: based on the fill parameter and shape parameter in the aes function, custom draw a grouped line chart and add data points (scatter points), use the legend.position fu
- 你好,我的新名字叫“铜锁/Tongsuo”
- 适配器模式适配出栈和队列及优先级队列
- Verilog的随机数系统任务----$random
- 第十七章 Excel操作
猜你喜欢

利用二维数据学习纹理三维网格生成(CVPR 2020)

读博一年后对机器学习工程的思考

Spearman's correlation coefficient

matlab-day02

李航《统计学习方法》笔记之监督学习Supervised learning

Do you agree with this view?Most businesses are digitizing just to ease anxiety

向量点积(Dot Product),向量叉积(Cross Product)

php组件漏洞

软件测试之发现和解决bug

Rear tube implements breadcrumb function
随机推荐
R语言ggplot2可视化:使用ggpubr包的ggbarplot函数可视化堆叠的柱状图(stacked bar plot)、lab.pos参数指定柱状图的数值标签的位置,lab.col参数指定数值标
行为型模式-模板方法模式
The perceptron perceptron of Li Hang's "Statistical Learning Methods" notes
qq邮箱日发5万邮件群发技术(qq邮箱怎样定时发送邮件)
刷题错题录1-隐式转换与精度丢失
你好,我的新名字叫“铜锁/Tongsuo”
R language ggplot2 visualization: use the ggbarplot function of the ggpubr package to visualize the stacked bar plot, the lab.pos parameter specifies the position of the numerical label of the bar cha
TimerTask(addin timer语音)
一款优秀的中文识别库——ocr
日元疲软令游戏机在日本变身“理财产品”:黄牛大赚
软件工程国考总结——选择题
Unknown content monitoring
读博一年后对机器学习工程的思考
在全志V853开发板试编译QT测试
每日一题练习1-15
Re23:读论文 How Does NLP Benefit Legal System: A Summary of Legal Artificial Intelligence
Shell script realizes multi-select DNS simultaneous batch resolution of domain name IP addresses (new update)
【新版干货书】深度伪造 (DeepFakes):创造,检测和影响
超赞!发现一个APP逆向神器!
R语言ggpubr包的ggline函数可视化分组折线图、add参数为mean_se和dotplot可视化不同水平均值的折线图并为折线图添加误差线(se标准误差)和点阵图、自定义palette设置颜色