ES6語法之新資料型別Symbol

2021-10-10 21:48:36 字數 1806 閱讀 1165

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...