ES6 解構 destructuring

来源:https://www.cnblogs.com/jiaobaba/archive/2019/11/12/11844950.html
-Advertisement-
Play Games

解構的作用:簡化書寫長度,提升開發效率。 解構對象 在開發中我們常用到使用ajax請求數據,並且把數據渲染到頁面上。可能這個數據返回的對象或數組。例如返回一個obj{name:'zwq',age:18,sex:woman}而我們獲取裡面的值保存在變數里會用 var name = obj.name,v ...


解構的作用:簡化書寫長度,提升開發效率。

解構對象

在開發中我們常用到使用ajax請求數據,並且把數據渲染到頁面上。可能這個數據返回的對象或數組。例如返回一個obj{name:'zwq',age:18,sex:woman}而我們獲取裡面的值保存在變數里會用 var name = obj.name,var age = obj.age。

在es6中提供瞭解構的語法糖,讓左右兩側極為相似的結構進行變數賦值。

在對象中單獨寫一個name代表的就是 name:name,左側name你要到對象對象找到的屬性,右側name代表你聲明的變數名,所以,下麵代碼中obj對象的name,age屬性賦值給變數name和age。在左側的變數找到了右側對象的相同屬性並把值賦給對應變數。

 

let obj = {
    name: "zwq",
    age: 18,
    sex:'female'
}
let name,age;
({ name, age } = obj);
console.log(name, age);   //zwq 18

 

 

 

上面代碼是先聲明變數,在賦值。也可以聲明變數時同時賦值,如下:

 

let {name,age} = obj;
console.log(name,age);   //zwq 18

 

 

 

當自己聲明的變數不想和對應的屬性重名是

 

let {name:Oname,age:Oage} = obj;
console.log(Oname,Oage);  //zwq 18

 

 

 

預設賦值

下麵代碼採用預設賦值,形參a,分別預設賦值為10,20。當值傳入一個值的時候,b並不是undefined,而是取預設值。

 

function sum(a = 10,b = 20){
    console.log(a+b);
}
sum(5);

 

 

 

下麵代碼使用預設值的方式給變數sex附上預設值male,當對象中找不到對應的屬性是取預設值,當存在對用屬性是,取對象裡面的值。

 

let {name:Oname,age:Oage,sex ='male' } = obj;
console.log(Oname,Oage,sex);

 

 

 

解構數組

由於數組也是對象,屬性名是當前的索引值,所以下麵可以成功的進行變數賦值。同時數組中用length屬性。因此聲明length變數也可以獲取對象的屬性值:數組的長度

 

let arr = [1,2,3];
let {0:x,1:y,2:z} = arr
console.log(x,y,z);   //1,2,3

 let{length} = arr;  console.log(length);  //3
 

 

 

 

而解構就是使用左右兩側極為相似的解構進行賦值,在數組解構中這樣書寫:

 

let [x,y,z] = arr;
console.log(x,y,z);   //1,2,3

 

 

 

當數組嵌套對象的形式也可以利用左右兩側相似解構進行賦值。

用,,,占位,照抄arr的結構。如下聲明name變數,並且列印zwq.

 

let arr = [1,2,3,{name:'zwq'}];
let [,,,{name}] = arr;
console.log(name);

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 上一篇筆記僅是記錄了一下簡單的關聯查詢,根據筆記中的場景:將某一車輛關聯的耗損記錄全部放在了一個欄位當中。不知道現在中有沒有這種場景,我們的應用中沒有類似的場景,可能我們更關註的是某車輛的總耗損金額和總營收金額、總里程數等,因此這篇筆記記錄一下怎麼得到這些數據。要想獲取這些記錄我們首先想到的就是先按 ...
  • elastic search 集群新增node 同一臺物理機 ...
  • 【學習階段】 WebService網路請求? 其實我也是第一次遇到,之所以有這個需要是因為一些與 ERP 相關的業務,需要用到這樣的一個請求方式。 開始學習WebService ①當然是百度搜索,這裡找了一個學習的博客 https://blog.csdn.net/swjtugiser/article ...
  • 我面試時遇到過幾次讓背個monkey命令的,可以這樣簡單說一個:adb shell monkey -p(約束包名) -s 200 -v -v --throttle 300 1500000 >e:\001.txt (日誌保存路徑) 一、monkey簡介: Monkey 就是SDK中附帶的一個工具。Mo ...
  • 基本選擇器介紹 基本選擇器又分為六種使用方式:如、通用選擇器、標簽選擇器、類選擇器、Id選擇器、結合元素選擇器、多類選擇器。 基本選擇器使用說明表。 選擇器 | 語法格式 | 含義 |舉例 | | | 通用選擇器 | {屬性:值;} |通用選擇器可以選擇頁面上的所有元素,並對它們應用樣式,用 來表示 ...
  • CSS浮動 1. 傳統網頁佈局的三種方式 網頁佈局的本質——用來CSS來擺放盒子。把盒子擺放在相應的位置 CSS提供了三種傳統的佈局方式: 普通流(標準流) 所謂的標準流,就是標簽按照規定好預設方式排列 塊級元素會獨占一行,從上向下排列 常用元素:div、hr、p、h1~h6、ul、ol、dl、fo ...
  • HTML HTML簡介 HTML(Hyper TextMarkupLanguage) 超文本標記語言。 超文本: 超越了文本僅僅展示信息的功能範疇,泛指:圖片、有樣式的文字、超鏈接。 標記: 標簽。 語言: 工具。 HTML是由標簽所組成的語言,能展示超文本的效果。 HTML的語言特征 HTML代碼 ...
  • Hello大家好,今天小主開啟了自己的博客,還請多多瀏覽和分享 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...