symbol類似於enum,可以起到識別符號的作用。主要可以應用在一下場景。
1.可以作為屬性名:
var mysymbol = symbol();
var a = {};
a.mysymbol = 'hello!';
a[mysymbol] // undefined
a['mysymbol'] // "hello!"
要注意symbol值作為物件屬性名時,不能用點運算子(因為點運算子後面總是字串,不加方括號,會被認為是乙個字串)
2.enum
const mytype = ;
function dosomething(type)
}
3.symbol.for(),symbol.keyfor()
當然symbol也是可以重複使用的,通過symbol.fo方法登記,symbol.keyfor方法返回乙個已登記的 symbol 型別值的key。
symbol.for("bar") === symbol.for("bar")
// true
symbol("bar") === symbol("bar")
// false
var s1 = symbol.for("foo");
symbol.keyfor(s1) // "foo"
var s2 = symbol("foo");
symbol.keyfor(s2) // undefined
4. 內建的symbol值:
symbol.hasinstance
symbol.isconcatspreadable
symbol.species
symbol.match
symbol.replace
symbol.search
symbol.split
symbol.iterator
symbol.toprimitive
symbol.tostringtag
symbol.unscopables
Symbol的學習筆記 ES6系列5
symbol的學習參考了以下大大們的部落格 僅為自己的學習筆記。在es5中,物件的屬性都是字串,很容易引起命名衝突的問題。如果你寫乙個物件,需要有一些屬性名你不想別人誤操作或修改,則可以借助symbol來完成。symbol為es6引入的第七種資料型別,也是原始資料型別。表示獨一無二的值。乙個symb...
ES6學習筆記 二
function fun url,timeout 60,callback url為必須引數,其餘為可選。es5 嚴格模式下arguments物件將不會發生變化,es6中如果引數使用了預設引數,則無論是否使用嚴格模式,arguments物件都將與es5嚴格模式保持一致 物件將與命名引數分離 funct...
es6學習筆記(二)
一.let命令宣告變數 1.用法 let宣告的變數只在所處位置的 塊內有效 example1.js for var i 0 i 2 i console.log i i console.log a a console.log b b 執行結果會報錯 2.不存在變數提公升 example1.js con...