真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

怎么理解ES6對(duì)象

這篇文章主要講解了“怎么理解ES6對(duì)象”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“怎么理解ES6對(duì)象”吧!

成都創(chuàng)新互聯(lián)專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于做網(wǎng)站、網(wǎng)站制作、秦淮網(wǎng)絡(luò)推廣、小程序定制開發(fā)、秦淮網(wǎng)絡(luò)營(yíng)銷、秦淮企業(yè)策劃、秦淮品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營(yíng)等,從售前售中售后,我們都將竭誠(chéng)為您服務(wù),您的肯定,是我們最大的嘉獎(jiǎng);成都創(chuàng)新互聯(lián)為所有大學(xué)生創(chuàng)業(yè)者提供秦淮建站搭建服務(wù),24小時(shí)服務(wù)熱線:028-86922220,官方網(wǎng)址:www.cdcxhl.com

對(duì)象字面量

屬性的簡(jiǎn)潔表示法

ES6允許對(duì)象的屬性直接寫變量,這時(shí)候?qū)傩悦亲兞棵?,屬性值是變量值?/p>

const age = 12;
const name = "Amy";
const person = {age, name};
person   //{age: 12, name: "Amy"}
//等同于
const person = {age: age, name: name}

方法名也可以簡(jiǎn)寫

const person = {
  sayHi(){
    console.log("Hi");
  }
}
person.sayHi();  //"Hi"
//等同于
const person = {
  sayHi:function(){
    console.log("Hi");
  }
}
person.sayHi();//"Hi"

如果是Generator 函數(shù),則要在前面加一個(gè)星號(hào):

const obj = {
  * myGenerator() {
    yield 'hello world';
  }
};
//等同于
const obj = {
  myGenerator: function* () {
    yield 'hello world';
  }
};

屬性名表達(dá)式

ES6允許用表達(dá)式作為屬性名,但是一定要將表達(dá)式放在方括號(hào)內(nèi)。

const obj = {
 ["he"+"llo"](){
   return "Hi";
  }
}
obj.hello();  //"Hi"

注意點(diǎn):屬性的簡(jiǎn)潔表示法和屬性名表達(dá)式不能同時(shí)使用,否則會(huì)報(bào)錯(cuò)。

const hello = "Hello";
const obj = {
 [hello]
};
obj  //SyntaxError: Unexpected token }
 
const hello = "Hello";
const obj = {
 [hello+"2"]:"world"
};
obj  //{Hello2: "world"}

對(duì)象的拓展運(yùn)算符

拓展運(yùn)算符(...)用于取出參數(shù)對(duì)象所有可遍歷屬性然后拷貝到當(dāng)前對(duì)象。

基本用法

let person = {name: "Amy", age: 15};
let someone = { ...person };
someone;  //{name: "Amy", age: 15}

可用于合并兩個(gè)對(duì)象

let age = {age: 15};
let name = {name: "Amy"};
let person = {...age, ...name};
person;  //{age: 15, name: "Amy"}

注意點(diǎn)

自定義的屬性和拓展運(yùn)算符對(duì)象里面屬性的相同的時(shí)候:自定義的屬性在拓展運(yùn)算符后面,則拓展運(yùn)算符對(duì)象內(nèi)部同名的屬性將被覆蓋掉。

let person = {name: "Amy", age: 15};
let someone = { ...person, name: "Mike", age: 17};
someone;  //{name: "Mike", age: 17}

自定義的屬性在拓展運(yùn)算度前面,則變成設(shè)置新對(duì)象默認(rèn)屬性值。

let person = {name: "Amy", age: 15};
let someone = {name: "Mike", age: 17, ...person};
someone;  //{name: "Amy", age: 15}

拓展運(yùn)算符后面是空對(duì)象,沒有任何效果也不會(huì)報(bào)錯(cuò)。

let a = {...{}, a: 1, b: 2};
a;  //{a: 1, b: 2}

拓展運(yùn)算符后面是null或者undefined,沒有效果也不會(huì)報(bào)錯(cuò)。

let b = {...null, ...undefined, a: 1, b: 2};
b;  //{a: 1, b: 2}

對(duì)象的新方法

Object.assign(target, source_1, ···)

用于將源對(duì)象的所有可枚舉屬性復(fù)制到目標(biāo)對(duì)象中。

基本用法

let target = {a: 1};
let object2 = {b: 2};
let object3 = {c: 3};
Object.assign(target,object2,object3);  
// 第一個(gè)參數(shù)是目標(biāo)對(duì)象,后面的參數(shù)是源對(duì)象
target;  // {a: 1, b: 2, c: 3
  • 如果目標(biāo)對(duì)象和源對(duì)象有同名屬性,或者多個(gè)源對(duì)象有同名屬性,則后面的屬性會(huì)覆蓋前面的屬性。
    如果該函數(shù)只有一個(gè)參數(shù),當(dāng)參數(shù)為對(duì)象時(shí),直接返回該對(duì)象;當(dāng)參數(shù)不是對(duì)象時(shí),會(huì)先將參數(shù)轉(zhuǎn)為對(duì)象然后返回。

  • Object.assign(3); // Number {3}
    typeof Object.assign(3); // "object"
    因?yàn)?null 和 undefined 不能轉(zhuǎn)化為對(duì)象,所以會(huì)報(bào)錯(cuò):

    Object.assign(null);       // TypeError: Cannot convert undefined or null to object
    Object.assign(undefined);  // TypeError: Cannot convert undefined or null to object
    當(dāng)參數(shù)不止一個(gè)時(shí),null 和 undefined 不放第一個(gè),即不為目標(biāo)對(duì)象時(shí),會(huì)跳過 null 和 undefined ,不報(bào)錯(cuò)
    Object.assign(1,undefined);  // Number {1}
    Object.assign({a: 1},null);  // {a: 1}
     
    Object.assign(undefined,{a: 1});  // TypeError: Cannot convert undefined or null to object

    注意點(diǎn)

    assign 的屬性拷貝是淺拷貝:

    let sourceObj = { a: { b: 1}};
    let targetObj = {c: 3};
    Object.assign(targetObj, sourceObj);
    targetObj.a.b = 2;
    sourceObj.a.b;  // 2

    同名屬性替換

    targetObj = { a: { b: 1, c:2}};
    sourceObj = { a: { b: "hh"}};
    Object.assign(targetObj, sourceObj);
    targetObj;  // {a: {b: "hh"}}

    數(shù)組的處理

    Object.assign([2,3], [5]);  // [5,3]

    會(huì)將數(shù)組處理成對(duì)象,所以先將 [2,3] 轉(zhuǎn)為 {0:2,1:3} ,然后再進(jìn)行屬性復(fù)制,所以源對(duì)象的 0 號(hào)屬性覆蓋了目標(biāo)對(duì)象的 0。

    Object.is(value1, value2)

    用來(lái)比較兩個(gè)值是否嚴(yán)格相等,與(===)基本類似。

    基本用法

    Object.is("q","q");      // true
    Object.is(1,1);          // true
    Object.is([1],[1]);      // false
    Object.is({q:1},{q:1});  // false

    與(===)的區(qū)別

    //一是+0不等于-0
    Object.is(+0,-0);  //false
    +0 === -0  //true
    //二是NaN等于本身
    Object.is(NaN,NaN); //true
    NaN === NaN  //false

感謝各位的閱讀,以上就是“怎么理解ES6對(duì)象”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對(duì)怎么理解ES6對(duì)象這一問題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!


網(wǎng)頁(yè)名稱:怎么理解ES6對(duì)象
網(wǎng)站URL:http://weahome.cn/article/jcppis.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部