es6新增了一種資料型別:symbol,symbol是用來定義物件的唯一屬性名的不二之選;
symbol如何使用呢, symbol不是乙個建構函式哦, 如果用new symbol的話, 會報錯的:
執行下面**
連自己都不等於自己:var sym1 =
symbol()
;var sym2 =
symbol
("foo");
var sym3 =
symbol
("foo");
console.
log(sym1, sym2, sym3)
//輸出symbol() symbol(foo) symbol(foo)
作為屬性名的symbol;使用symbol給物件新增唯一的屬性, symbol也能作為物件的函式名;//用同樣的引數建立兩次, 也是不相等的:
symbol
("foo"
)===
symbol
("foo");
//輸出:false
我們可以用typeof判斷某乙個變數型別為symbol型別:let obj =
;let sattr0 =
symbol
("hehe");
let sattr1 =
symbol
("meme");
obj[sattr1]=1
;console.
log(obj[sattr1]);
obj[sattr0]=(
)=>
;
執行下面**
如果我們不知道symbol的例項名字是什麼,我們怎麼獲取到symbol值的呢, symbol無法被for in , for of迴圈,以及object.keys, object.values 等都無法遍歷到symbol的屬性; object下給我們提供了乙個getownpropertysymbols;typeof
symbol()
==='symbol'
//輸出:true
typeof
symbol
('foo'
)===
'symbol'
//輸出: true
typeof symbol.iterator ===
'symbol'
//輸出 : true
let sym0 =
symbol
("o_o?");
let obj =
for(
let prop of object.
getownpropertysymbols
(obj)
);
es6新特性 ES6新特性(一)
var 1 var宣告的是函式作用域 區域性 但在if for等定義的變數是全域性的 2 var 具有變數提公升,預解析 3 在同乙個作用域下,var可以宣告多次 4 var 宣告的變數會掛載到window上 let1 let不存在變數提公升,在變數使用之前,必須要先宣告 2 let在同一作用域下,...
ES6新特性須知
1.1es5之前函式想要賦預設值var funes5 function a,b,c 1.2es6開始函式想要賦預設值var funes6 function a 50,b 60,c 70 2.1es5之前字串拼接或者拼接屬性值只能如下var a lbj var b 50 var c name a ye...
es6新特性分享
1 字串查詢 es5使用是indexof 返回字元第一次出現的位置int值 es6新增了3個方法 includes startswith endwith 返回bool值 includes 是否包含字元 startswith 首字母是否包含字元 endwith 末尾是否包含字元 2 數值擴充套件 nu...