欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

JavaScript對象解構的用法實例解析

 更新時間:2022年01月23日 17:05:21   作者:半夏的故事  
解構賦值允許你使用類似數組或對象字面量的語法將數組和對象的屬性賦給各種變量,下面這篇文章主要給大家介紹了關于JavaScript對象解構用法的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下

前言

ES6(ES2015)的發(fā)布,給JavaScript 提供了一種更方便快捷的方式來處理對象的屬性。該機制稱為Destructuring(也稱為解構賦值)。但是你真的會用嗎?你真的了解各種場景下,解構賦值的用法嗎?

使用解構從對象中獲取值

對象解構最基本的用法是從對象中檢索屬性鍵的值。

例如,我們定義了一個對象,他有兩個屬性:name和age

const User = {
  name: '搞前端的半夏',
  age: 18
}

傳統上,我們將使用點 (.) 表示法或下標 ([]) 表示法從對象中檢索值。下面的代碼片段顯示了使用點符號檢索對象的值id和name從對象中檢索值的示例。employee

在之前我們想要獲取對象中某個屬性的值,通產是使用.或者[]。

const name = User['name'];
const age = User.age;

當然這兩種方式在當前情況下是沒有問題的,但是當User的屬性多了,我們就要不停的復制粘貼,產生很多重復的代碼。

有了結構賦值,我們就可以快速的來獲取值。例如我們使用對象的鍵名來創(chuàng)建變量,并將對象的值分配給相同的鍵。這樣無論有多少屬性,我們只要賦值屬性名即可,同樣的也減少了很多重復代碼。

const { name, age } = User;

使用解構從嵌套對象中獲取值

在上面的例子中,User只是一個簡單的單層對象,我們在日常的開發(fā)中也會遇到嵌套的對象,,那么使用結構賦值,我們該如何檢索嵌套對象中的值。下面我們重新定義User對象,給這個對象新增一個contact屬性,它包含著User的phone。。

const User = {
  name: '搞前端的半夏',
  age: '18',
  contact:{
    phone:'110',
  }
}

如果我們用.的當時來回去phone的值,則需要兩次.

const phone = User.contact.phone;

如果使用解構賦值的話:則寫法如下:

const  {contact:{phone}}=User
consosle.log(phone)  // 輸出10.

無論是多少層的嵌套,只要按照這個寫法,一定會拿到具體的值。

使用對象解構定義一個新變量以及默認值

默認值

當然我們在日常開發(fā)的過程中,可能會遇到很多極端的情況,

例如后端傳過來的對象,可能會缺失某些字段

const User = {
  name: '搞前端的半夏',
}

或者屬性沒有具體的值:

const User = {
  name: '搞前端的半夏',
  age: ''
}

當我們使用解構賦值的話:無論是否存在age屬性的話,都會創(chuàng)建age變量。

const { name, age } = employee;

當User.age沒有具體值得話,我們則可以使用

const { name, age=18 } = employee;

給age一個默認值。

新變量

堅持,稍等。解構部分有更多的魔力展示!如何創(chuàng)建一個全新的變量并分配一個使用對象屬性值計算的值?聽起來很復雜?這是一個例子,

當我們想輸出User屬性的組合值的話,應該怎么做呢?

const { name,age,detail = `${name} 今年 ${age} `} = User ;
console.log(detail); // 輸出:搞前端的半夏 今年 18 

使用 JavaScript 對象解構別名

在 JavaScript 對象解構中,您可以為解構變量alias命名。減少變量名沖突的機會非常方便。

const User = {
  name: '搞前端的半夏',
  age: ''
}

假設我們想用解構賦值獲取age屬性的值,但是代碼中已經又age這個變量了,我們這個時候就需要在結構的時候定義別名。

const { age: userAge } = User;
console.log(userAge); //搞前端的半夏

而如果使用age的話,會報錯。

console.log(age);

使用對象解構處理動態(tài)名稱屬性

我們經常將 API 響應數據作為 JavaScript 對象處理。這些對象可能包含動態(tài)數據,因此作為客戶端,我們甚至可能事先不知道屬性鍵名稱。

const User = {
  name: '搞前端的半夏',
  age: ''
}

當我們將鍵作為參數傳遞時,我們可以編寫一個返回User對象屬性值的函數。這里我們使用了[],來接受參數,js會根據這個鍵對從對象中檢索!

function getPropertyValue(key) {
    const { [key]: returnValue } = User;   
    return returnValue;
}
const contact = getPropertyValue('contact');
const name = getPropertyValue('name');

console.log(contact, name); // 空  搞前端的半夏

在函數參數和返回值中解構對象

解構賦值傳參

使用對象解構將屬性值作為參數傳遞給函數。

const User = {
  name: '搞前端的半夏',
  age: 18
}

name現在讓我們創(chuàng)建一個簡單的函數,該函數使用和屬性值創(chuàng)建一條消息dept以登錄到瀏覽器控制臺。

function consoleLogUser({name, age}) {
  console.log(`${name} 今年 ${age}`); 
}

直接將值作為函數參數傳遞并在內部使用它們。

consoleLogUser(User); // 搞前端的半夏 今年 18

解構函數對象返回值

對象解構函數還有另一種用法。如果函數返回一個對象,您可以將值直接解構為變量。讓我們創(chuàng)建一個返回對象的函數。

function getUser() {
  return {
    'name': '搞前端的半夏',
    'age': 18
  }
}
const { age } = getUser();
console.log(age); // 18

在循環(huán)中使用對象解構

我們將討論的最后一個(但并非最不重要的)用法是循環(huán)解構。讓我們考慮一組員工對象。我們想要遍歷數組并想要使用每個員工對象的屬性值。

const User= [
  { 
       'name': '愛分享的半夏',
   		 'age': 16
  },
  { 
      'name': '搞前端的半夏',
   		 'age': 18
  },
  { 
        'name': '敲代碼的半夏',
   		 'age': 20
  }
];

您可以使用for-of循環(huán)遍歷User對象,然后使用對象解構賦值語法來檢索詳細信息。

for(let {name, age} of employees) {
  console.log(`${name} 今年${age}歲!!!`);
}

總結

到此這篇關于JavaScript對象解構用法的文章就介紹到這了,更多相關js對象解構用法內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:

相關文章

  • 深入淺析JavaScript中with語句的理解

    深入淺析JavaScript中with語句的理解

    JavaScript 有個 with 關鍵字, with 語句的原本用意是為逐級的對象訪問提供命名空間式的速寫方式。這篇文章主要介紹了JavaScript中with語句的相關知識,感興趣的朋友一起學習吧
    2016-05-05
  • ES6中export?default和export之間的區(qū)別詳解

    ES6中export?default和export之間的區(qū)別詳解

    export和export?default都是es6語法中用來導出組件的,可以導出的文檔類型有(?數據、常量、函數、js文件、模塊等),下面這篇文章主要給大家介紹了關于ES6中export?default和export之間的區(qū)別的相關資料,需要的朋友可以參考下
    2023-04-04
  • js設置控件的隱藏與顯示的兩種方法

    js設置控件的隱藏與顯示的兩種方法

    js設置控件的隱藏與顯示,設置控件style的display和visibility屬性就可以了,下面有個示例,需要的朋友可以參考下
    2014-08-08
  • 給自定義對象加上自定義事件的支持的教程

    給自定義對象加上自定義事件的支持的教程

    自從我寫了幾個還可以拿出手的東東之后,自我感覺牛B了許多,還有不少同志圍著我,稱我為高手,虛容心大大的得到了滿足。這些是后話,暫且不表。。。
    2008-03-03
  • 開啟BootStrap學習之旅

    開啟BootStrap學習之旅

    當下最流行的前端開發(fā)框架Bootstrap,可大大簡化網站開發(fā)過程,從而深受廣大開發(fā)者的喜歡,你如果也喜歡Bootstrap前端開發(fā)框架,不要錯過這次旅行
    2016-05-05
  • JS前端輕松導出Excel的通用方法詳解

    JS前端輕松導出Excel的通用方法詳解

    這篇文章主要介紹關于導出Excel通用方法的實用前端技巧,希望能夠幫助大家更好地處理數據導出需求,接下來,我將為大家詳細介紹這個方法和代碼實現,需要的朋友可以參考下
    2023-09-09
  • javascript實現表格信息增添與刪除

    javascript實現表格信息增添與刪除

    這篇文章主要為大家詳細介紹了javascript實現表格信息增添與刪除,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-04-04
  • JavaScript實現的購物車效果可以運用在好多地方

    JavaScript實現的購物車效果可以運用在好多地方

    JavaScript實現的購物車效果,當然這個效果可以運用在好多地方,比如好友的選擇,人力資源模塊等等,需要的朋友可以參考下
    2014-05-05
  • JavaScript設計模式之工廠模式和構造器模式

    JavaScript設計模式之工廠模式和構造器模式

    這篇文章主要介紹了JavaScript設計模式之工廠模式和構造器模式,本文同時講解了設計模式的類別如創(chuàng)建型設計模式、結構型設計模式、行為設計模式等內容,需要的朋友可以參考下
    2015-02-02
  • JavaScript 定時器 SetTimeout之定時刷新窗口和關閉窗口(代碼超簡單)

    JavaScript 定時器 SetTimeout之定時刷新窗口和關閉窗口(代碼超簡單)

    這篇文章主要介紹了JavaScript 定時器 SetTimeout之定時刷新窗口和關閉窗口(代碼超簡單)的相關資料,需要的朋友可以參考下
    2016-02-02

最新評論