自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

項目中關于解構的常用用法,我都幫你整理好了

開發(fā) 前端
在本文串,你將學到所有你需要知道的 JS 解構知識點??蓮囊阎獙ο笾薪鈽嬎璧某蓡T,與順序無關,可使用展開語法(必須放最后)解構剩下的成員(仍然是對象)。

[[433209]]

在本文串,你將學到所有你需要知道的 JS 解構知識點。

為什么 JS 中存在解構?

這是一個普通的對象,包含4個人的名字。

  1. const names = { 
  2.     taylor: '小智'
  3.     shawn: '前端小智'
  4.     zayn: '大志'
  5.     halsey: '王大志'

 現在,如果讓你手動打印所有人名到控制臺,你會怎么做??赡軙@樣做:

  1. console.log(names.taylor) 
  2. console.log(names.shawn) 
  3. console.log(names.zayn) 
  4. console.log(names.halsey) 

這種點的方式有點煩人,怎樣才能讓它變得更好?

  1. const taylor = names.taylor 
  2. const shawn = names.shawn 
  3. const zayn = names.zayn 
  4. const halsey = names.halsey 
  5.  
  6. console.log(taylor) 
  7. console.log(shawn) 
  8. console.log(zayn) 
  9. console.log(halsey) 

好多了。但我們仍然在重復同樣的工作。如果我們可以在單個變量上聲明和分配對象屬性呢?

這樣會更好,對吧?這就是對象解構幫助我們的地方。所以我們可以這樣做:

  1. const { taylor, shawn, zayn, halsey} = names 
  2.  
  3. console.log(taylor) 
  4. console.log(shawn) 
  5. console.log(zayn) 
  6. console.log(halsey) 

 這比以前好多了。

它是如何工作的呢?

這很簡單。我們只是從對象中取出屬性并將它們存儲在一個變量中。默認情況下,變量名與屬性名相同。所以我們可以這樣寫:

  1. const { taylor, shawn, zayn: zaynMalik, halsey} = names 

數組解構?

數組解構與對象的解構類似,但有一些區(qū)別。我們知道數據被存儲在一個帶有索引的數組中。它們是有順序的。因此,在進行解構時,我們必須保持順序。比如:

  1. const albums = ['Lover''Evermore''Red''Fearless'
  2.  
  3. const [lover, ever] = albums 
  4. // Lover Evermore 

 而且,數組也沒有值的屬性。所以,可以直接給出你想要的任何變量名稱。

我們繼續(xù)看看對象和數組解構的一些用例。

數組解構

交換變量

  1. let a = 1; 
  2. let b = 3; 
  3.  
  4. [a, b] = [b, a]; 
  5. console.log(a); // 3 
  6. console.log(b); // 1 

忽略一些返回值

  1. function f() { 
  2.   return [1, 2, 3]; 
  3.  
  4. const [a, , b] = f(); 
  5. console.log(a); // 1 
  6. console.log(b); // 3 

默認值

  1. let a, b; 
  2.  
  3. [a=5, b=7] = [1]; 
  4. console.log(a); // 1 
  5. console.log(b); // 7 

用 Rest 參數創(chuàng)建子數組

  1. const albums = ['Lover''Evermore''Red''Fearless'
  2.  
  3. const [, ...albums2] = albums 
  4.  
  5. console.log(albums2) // ['Evermore''Red''Fearless'

對象解構

從作為函數參數傳遞的對象中解構字段

  1. const anjan = { 
  2.         name'前端小智', age: 20 
  3.  
  4. const statement = ({name, age}) => { 
  5.         return `My name is ${name}. I am ${age} years old.` 
  6.  
  7. statement(anjan) 
  8. // My name is 前端小智. I am 20 years old. 

嵌套對象解構

  1. const profile= {  
  2.   name'Anjan',  
  3.   age: 20, 
  4.   professional: { 
  5.      profession: '前端開發(fā)'
  6.   } 
  7.  
  8. const {name, age, professional: {profession}} = profile 
  9.  
  10. console.log(professional) // 這句會報錯 
  11. console.log(profession) // 前端開發(fā) 

默認值

  1. const {a = 10, b = 5} = {a: 3}; 
  2.  
  3. console.log(a); // 3 
  4. console.log(b); // 5 

嵌套對象和數組解構

  1. const taylor = { 
  2.   name'Taylor Swift'
  3.   age: 31, 
  4.   address: { 
  5.       city: 'New York'
  6.       country: 'USA'
  7.   }, 
  8.   albums: ['Lover''Evermore''Red''Fearless'], 
  9.  
  10. const { 
  11.   name
  12.   age, 
  13.   address: { city }, 
  14.   albums: [lover, ...rest], 
  15. } = taylor 
  16.  
  17. console.log(name) // Taylor Swift 
  18. console.log(age) // 31 
  19. console.log(city) // New York 
  20. console.log(lover) // Lover 
  21. console.log(rest) // [ 'Evermore''Red''Fearless' ] 

這就是關于 JS 所有你需要知道的 JS 解構知識點。

作者:Ruphaa 譯者:前端小智

來源:dev 原文:https://dev.to/thatanjan/everything-you-need-to-know-about-javascript-destructuring-30e5

 

責任編輯:姜華 來源: 今日頭條
相關推薦

2019-01-16 10:55:08

Python 開發(fā)編程語言

2018-08-03 10:49:00

2021-02-23 15:54:23

編程技能開發(fā)

2022-09-27 11:36:43

UIUI界面設計

2021-11-02 08:14:36

個人信息保護法信息安全個人信息

2010-06-28 11:06:04

SQL Server

2013-12-12 17:14:10

Linuxvim

2023-01-05 17:55:39

分布式架構

2023-12-08 08:01:29

分布式IM即時通訊系統(tǒng)架構設計

2025-04-23 09:21:10

2025-01-02 09:32:54

AI模型數據

2021-08-06 10:02:14

圖表餅圖聯系圖表

2021-02-23 09:06:00

MVCC版本并發(fā)

2020-05-11 09:38:52

Python開發(fā)函數

2021-02-15 12:06:05

PythonSetDict

2019-11-14 09:17:05

TiDB分庫分表性能

2010-04-22 10:36:41

Oracle數據導入

2010-04-12 16:12:07

Oracle HINT

2024-06-18 10:28:46

2021-07-26 05:20:47

JavaScript解構賦值數組解構
點贊
收藏

51CTO技術棧公眾號