1.symbol:新的資料型別,表示乙個不會重複的值
新的資料型別,表示乙個不會重複的值
//不是函式,不可以new
let sym =
symbol
('33');
console.
log(
typeof sym)
;//symbol
//symbol返回的值不會相同
let sym2 =
symbol
('aa');
let sym3 =
symbol
('aa');
console.
log(sym2 === sym3)
;//false
2.symbol.for()方法
方法
//定義到symbol的值
//並且會在全域性註冊key-symbol箭值對
let sym4 = symbol.
for(
'aa');
let sym5 = symbol.
for(
'aa');
console.
log(sym4 === sym5)
;//true
console.
log(sym4)
;//true
方法//通過某個key獲取對應的key值
let sym6 = symbol.
for(
"bb");
let sym7 = symbol.
keyfor
(sym6)
; console.
log(sym7)
;//bb
3.使用場景
//作用:
//定義不會重名的屬性
let name = symbol.
for(
'name');
let obj =
console.
log(obj)
// console.
log(obj.name)
//小張
console.
log(obj[symbol.
for(
'name')]
)//張
obj[symbol.
for(
'name')]
='張xx'
; console.
log(obj)
////定義常量
//可以利用這個特性,為物件定義一些非私有的、但又希望只用於內部的方法
4.symbol定義屬性不會被(for in)(for of)遍歷
let name2 = symbol.
for(
'name');
let obj2 =
//symbol定義屬性不會被(for in)(for of)遍歷
for(
let i in obj2)
//需要用reflect來獲取全部的屬性
console.
log(reflect.
ownkeys
(obj2)
)//["name", "age", "***", symbol(name)]
//遍歷
for(
let i in reflect.
ownkeys
(obj2)
)
ES6新資料型別 Symbol
我們都知道es5 為我們提供了六種資料型別。分別是 物件 object 數字型別 number 布林型別 boolean 字串型別 string 空型別 null 未定義型別 undefind e6又為我們增加了一種型別 symbol 型別,他表示獨一無二的值。這樣下來js 就有七種資料型別了。一 ...
ES6 之 Integer資料型別
js所有數字都儲存成64為浮點數,這就決定了整數的精確程度只能到53個二進位制位。大於這個範圍的整數,js是無法精確表示的,這使得js不合適進行科學和金融方面的精確計算。故引入新的資料型別integer 整數 來解決這個問題 整數型別的資料只能用來表示整數,沒有位數的限制,任何位數的整數都可以精確表...
ES6 資料型別Symbol
1 symbol 定義的屬性,一般方法獲取不到 2 let name symbol 3 let obj 4 name 123 5 name 456 6 獲取symbol元素object.getownpropertysymbols 7object.getownpropertysymbols obj 8...