let firstname =
symbol()
;let person =
;person[firstname]
="fly"
;//symbol是原始值,呼叫new symbol()會導致程式報錯
symbol函式接受可選引數,用於描述,不可用於屬性訪問。
let firstname =
symbol
("first name");
let person =
;person[firstname]
="nicholas"
;console.
log(
"first name"
in person)
;// false
console.
log(person[firstname]);
// "nicholas"
console.
log(firstname)
;// "symbol(first name)"
let firstname =
symbol
("first name");
// use a computed object literal property
let person =
;// make the property read only
object.
defineproperty
(person, firstname,);
console.
log(person[firstname]);
// "nicholas"
建立乙個可共享的symbol:symbol.
for(
);
沒有就建立,有的話呼叫。
在全域性登錄檔中檢索與symbol有關的鍵:
symbol.
keyfor()
;
全域性登錄檔是乙個類似全域性作用域的共享環境。
let uid = symbol.
for(
"uid"),
desc =
string
(uid)
;console.
log(desc)
;// "symbol(uid)"
symbol不可拼接或轉換為字串或轉換為數字。
object.keys():返回所有可列舉屬性名
object.getownpropertynames():返回所有屬性名,不管是否可列舉
symbol.hasinstance方法
函式的方法,確定物件是否為函式的例項。
obj instanceof
array
;//等價於
array[symbol.hasinstance]
(obj)
;
object.
defineproperty
(myobject, symbol.hasinstance,})
;
symbol.方法
作用引數
返回值 [有]/[無]
hasinstance
檢測繼承資訊
物件true
toprimitive
返回物件原始值//valueof//tostring()
值原始值
match
比較字串
字串匹配元素的陣列/null
replace
替換字串
原始字串(,替換字串)
字串search
定位子串
字串匹配到返回索引或-1
split
分解字串
字串返回包含分解後片段的陣列
symbol.屬性
表示屬性值
isconcatspreadable
配置某物件作為array.prototype.concat()方法的引數時是否展開
其陣列元素屬性為布林值,為true,則表示物件有length屬性和數字鍵
tostringtag
建立物件描述
unscopables
定義不可被with引用的物件屬性名稱的物件集合
symbol.toprimitive()
數字模式優先順序排序:
呼叫valueof()方法,如果結果為原始值,則返回。
否則,呼叫tostring方法,如果結果為原始值,則返回。
如果再無可選值,則丟擲錯誤。
字串模式優先順序排序:
呼叫tostring()方法,如果結果為原始值,則返回。
否則,呼叫valueof()方法,如果結果為原始值,則返回。
如果再無可選值,則丟擲錯誤。
深入理解ES6 解構
解構時一種打破資料結構,將其拆分為更小部分的過程。解構在實際開發中經常會應用到物件和陣列中。關於解構的基本用法,請參考 es6 變數的宣告及解構賦值 const node let node 對已經宣告的變數賦值 const node let a,b node const obj let obj co...
深入理解ES6之《解構》
如果使用var let const解析宣告變數,則必須提供初始化程式 也就是等號右側的值 以下語句有語法錯誤 var let const解構賦值表示式 也就是右側的表示式 如果為null或undefined會導致程式丟擲錯誤,因為任何嘗試讀取null或undefined的屬性的行為都會觸發執行時錯誤...
深入理解es6的promise
一 promise入門 1.promise物件是什麼 函式的另一種原生實現,比之前 函式的寫法機構清晰,功能強大,2.以前 這麼寫 function a fn else 1000 呼叫a function m 3.用promise 寫 function a else 1000 呼叫a then fu...