91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

JavaScript對象解構的用法是什么

發布時間:2022-01-24 09:18:35 來源:億速云 閱讀:146 作者:kk 欄目:開發技術

本篇文章給大家分享的是有關JavaScript對象解構的用法是什么,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

    前言

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

    使用解構從對象中獲取值

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

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

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

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

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

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

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

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

    const { name, age } = User;

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

    在上面的例子中,User只是一個簡單的單層對象,我們在日常的開發中也會遇到嵌套的對象,,那么使用結構賦值,我們該如何檢索嵌套對象中的值。下面我們重新定義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.

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

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

    默認值

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

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

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

    或者屬性沒有具體的值:

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

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

    const { name, age } = employee;

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

    const { name, age=18 } = employee;

    給age一個默認值。

    新變量

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

    當我們想輸出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);

    JavaScript對象解構的用法是什么

    。*

    使用對象解構處理動態名稱屬性

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

    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現在讓我們創建一個簡單的函數,該函數使用和屬性值創建一條消息dept以登錄到瀏覽器控制臺。

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

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

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

    解構函數對象返回值

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

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

    在循環中使用對象解構

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

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

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

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

    JavaScript對象解構的用法是什么

    JavaScript的作用是什么

    1、能夠嵌入動態文本于HTML頁面。2、對瀏覽器事件做出響應。3、讀寫HTML元素。4、在數據被提交到服務器之前驗證數據。5、檢測訪客的瀏覽器信息。6、控制cookies,包括創建和修改等。7、基于Node.js技術進行服務器端編程。

    以上就是JavaScript對象解構的用法是什么,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。

    向AI問一下細節

    免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

    AI

    黎平县| 利津县| 剑川县| 镇雄县| 龙胜| 尤溪县| 蒙山县| 张掖市| 视频| 台东市| 丰台区| 改则县| 尉氏县| 当阳市| 内江市| 治县。| 乐都县| 嘉禾县| 凤庆县| 石景山区| 青阳县| 大兴区| 定州市| 杭锦后旗| 林芝县| 保山市| 靖边县| 迁安市| 漠河县| 孟连| 朔州市| 诸暨市| 桦川县| 太原市| 金门县| 昌平区| 柯坪县| 昭平县| 徐闻县| 同江市| 六盘水市|