鍍金池/ 教程/ HTML/ 介紹
初始化項(xiàng)目結(jié)構(gòu)
聯(lián)合類(lèi)型
介紹
介紹
介紹
編譯選項(xiàng)
TypeScript 1.6
介紹
介紹
發(fā)展路線圖
介紹
在MSBuild里使用編譯選項(xiàng)
可迭代性
TypeScript 1.3
介紹
介紹
TypeScript 1.1
變量聲明
即將到來(lái)的Angular 2框架是使用TypeScript開(kāi)發(fā)的。 因此Angular和TypeScript一起使用非常簡(jiǎn)單方便
tsconfig.json
介紹
介紹
介紹
在MSBuild里使用編譯選項(xiàng)
使用TypeScript的每日構(gòu)建版本
新建工程
枚舉
三斜線指令
結(jié)合ASP.NET v5使用TypeScript
TypeScript里的this
介紹
TypeScript 1.4
編碼規(guī)范
介紹
模塊解析
ASP.NET 4
架構(gòu)概述
介紹
介紹
ASP.NET Core
TypeScript 1.8
介紹
介紹
創(chuàng)建簡(jiǎn)單工程
TypeScript 1.7
TypeScript 1.5
NPM包的類(lèi)型
支持TypeScript的編輯器

介紹

自ECMAScript 2015起,symbol成為了一種新的原生類(lèi)型,就像numberstring一樣。

symbol類(lèi)型的值是通過(guò)Symbol構(gòu)造函數(shù)創(chuàng)建的。

let sym1 = Symbol();

let sym2 = Symbol("key"); // 可選的字符串key

Symbols是不可改變且唯一的。

let sym2 = Symbol("key");
let sym3 = Symbol("key");

sym2 === sym3; // false, symbols是唯一的

像字符串一樣,symbols也可以被用做對(duì)象屬性的鍵。

let sym = Symbol();

let obj = {
    [sym]: "value"
};

console.log(obj[sym]); // "value"

Symbols也可以與計(jì)算出的屬性名聲明相結(jié)合來(lái)聲明對(duì)象的屬性和類(lèi)成員。

const getClassNameSymbol = Symbol();

class C {
    [getClassNameSymbol](){
       return "C";
    }
}

let c = new C();
let className = c[getClassNameSymbol](); // "C"

眾所周知的Symbols

除了用戶定義的symbols,還有一些已經(jīng)眾所周知的內(nèi)置symbols。 內(nèi)置symbols用來(lái)表示語(yǔ)言?xún)?nèi)部的行為。

以下為這些symbols的列表:

Symbol.hasInstance

方法,會(huì)被instanceof運(yùn)算符調(diào)用。構(gòu)造器對(duì)象用來(lái)識(shí)別一個(gè)對(duì)象是否是其實(shí)例。

Symbol.isConcatSpreadable

布爾值,表示當(dāng)在一個(gè)對(duì)象上調(diào)用Array.prototype.concat時(shí),這個(gè)對(duì)象的數(shù)組元素是否可展開(kāi)。

Symbol.iterator

方法,被for-of語(yǔ)句調(diào)用。返回對(duì)象的默認(rèn)迭代器。

Symbol.match

方法,被String.prototype.match調(diào)用。正則表達(dá)式用來(lái)匹配字符串。

Symbol.replace

方法,被String.prototype.replace調(diào)用。正則表達(dá)式用來(lái)替換字符串中匹配的子串。

Symbol.search

方法,被String.prototype.search調(diào)用。正則表達(dá)式返回被匹配部分在字符串中的索引。

Symbol.species

函數(shù)值,為一個(gè)構(gòu)造函數(shù)。用來(lái)創(chuàng)建派生對(duì)象。

Symbol.split

方法,被String.prototype.split調(diào)用。正則表達(dá)式來(lái)用分割字符串。

Symbol.toPrimitive

方法,被ToPrimitive抽象操作調(diào)用。把對(duì)象轉(zhuǎn)換為相應(yīng)的原始值。

Symbol.toStringTag

方法,被內(nèi)置方法Object.prototype.toString調(diào)用。返回創(chuàng)建對(duì)象時(shí)默認(rèn)的字符串描述。

Symbol.unscopables

對(duì)象,它自己擁有的屬性會(huì)被with作用域排除在外。

上一篇:介紹下一篇:介紹