ES6 基礎 物件的賦值,Symbol

2022-03-03 11:57:26 字數 1618 閱讀 3845

物件的賦值合併:

//

es6語法允許變數直接為物件的賦值,快捷方便;

let liu="呵呵噠";

let

long="賴皮噠";

let a=;

console.log(a) ;

//es6語法允許為物件構建key值;

let key='skill';

var obj=

console.log(obj.skill);

//es6語法允許直接合併物件;

let s=;

let ss=;

let sss=object.assign(s,ss);

console.log(sss);

方法判斷是否相等;

兩等號判等會在比較時自動進行型別轉換,而三等號不會,如果型別不同,會直接返回false,

而object.is()則是在三等號的基礎上,又特別處理了nan、-0、+0,保證了-0和+0不再相同,

但是要注意的是object.is(nan, nan)會返回true

symbol:作為一種新的資料型別在es6橫空出世: symbol字面意思就是象徵性的,代表了某個東西的唯一性;

let myid=symbol();

let myname=symbol();          

console.log (myname)       ===>symbol()

typeof myname             ===>symbol

console.log(myid===myname)        ===>false

可以認為 symbol是一種類似字串的基本資料型別;不能與其他型別運算;也不能隱式轉換;

乙個symbol()可以認為在記憶體中建立看乙個新的函式(所以說小括號是函式的標誌都不會錯的);

symbol函式也可以傳入引數;引數僅僅作為對本次symbo的描述;

let myid=symbol("id");

let myname=symbol("名字");

就算兩個symbol的引數相同,他們也是不相等的;因為建立了乙個新的記憶體空間;

symbol最大的用處就是作為物件的屬性,來保證唯一性;

let system=symbol();

let foo={};

foo[system]="windows";       //還可以保證key值為symbol型別的不被 for in遍歷出來;

//同樣還證明了一點:物件的訪問方式,要麼以.;要麼以["這裡必須是字串"];js的底層全部是字串這種實現;

console.log(foo);

symbol 還可以共享乙個標誌;

let sy=symbol.for("aaa");

symbol.for(" ")並不會每次都建立乙個新的記憶體;最多只有乙個;如果在頁面中 aaa的標誌不存在則建立乙個 ,有的話直接引用以前的位址;

比如:let cccc=symbol.for("aaa");

那麼: console.log(sy===cccc); //true;  也很容易理解;最終還是保證了某個擁有 aaa描述的symbol型別的唯一性;

ES6的物件結構賦值

es6中的物件複製是右邊值是物件,而宣告這個物件的也是物件,es6之前的是宣告的值是物件,但是宣告是值 es6之前宣告的物件 var obj 01 es6基本的結構賦值 let 在賦值的時候需要注意 左側的變數名必須與右側的屬性名相同才能正確取值 與書寫的順序無關 因為物件是無序的資料儲存方式 le...

ES6 物件賦值

1.宣告的變數賦值給物件 let name judy let age 18 let obj console.log obj 2.物件中key值的構建 let key name let obj console.log obj.name wayne3.物件比較object.is var obj1 var...

關於ES6 的物件解構賦值

之 前寫了關於es6陣列的解構 現在 go on 解構不僅可以用於陣列,還可以用於物件 物件的解構和陣列有乙個重要的不同。陣列的元素是按次序排列的,變數的取值是由他的位置決定的 而物件的屬性沒有次序,變數必須與屬性同名,才能取到正確的值 等號與右邊兩個同名屬性的次序不一致,但是對取值沒有任何的影響 ...