成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

JavaScript的解構技巧:排除對象屬性、避免命名沖突、交換……

開發 前端
解構是JavaScript中的一個強大工具。它可以從數組和對象中提取出有意義的變量,并用解構來處理JSON數據、嵌套對象或數組非常方便。

解構是JavaScript中的一個強大工具。它可以從數組和對象中提取出有意義的變量,并用解構來處理JSON數據、嵌套對象或數組非常方便。

[[333599]]

下面的示例展示了創建解構賦值表達式的最簡單的方法之一:

JavaScript的解構技巧:排除對象屬性、避免命名沖突、交換……

如果左側的解構表達式中傳遞的變量名與對象屬性不匹配,則將該值作為undefined進行分配。雖然這個例子看起來非常簡單,但它還可以通過解構語法實現更多可能。

一起去探索一些解構用例吧。

通過解構別名進行重命名

無論是在頂級對象中,還是在需要導入庫時,別名都有助于防止重名,在import語句中解構別名與解構對象不同:

  1. import { some-func1, some-func2 } from 'some-library';//use aliasing 
  2. import { some-func1 as newFunc } from 'some-library'; 
  3. newFunc();import { * as some-library } from 'some-library' 

要提供一個與屬性名不同的解構變量,需要使用冒號語法來指定它,如下所示:

  1. const { work: {job : profession} } = person; 
  2. console.log(profession) // Blogger 

使用解構表達式交換變量

通常會使用一個臨時變量進行交換,示例如下(也可以通過一個數學公式和XOR運算符來做):

  1. let a = 1
  2. let b = 2
  3. let temp; 
  4.  
  5. temp = a
  6. a = b
  7. b = temp

通過解構,可以在單個表達式中輕松地交換變量,如下所示:

  1. [a, b] = [b, a]; 

更有趣的一點是,解構能夠交換n個變量:

  1. [a, b, c] = [b, c, a] 

訪問嵌套屬性并設置默認值

解構也適用于嵌套對象,并有助于避免長鏈列表。示例如下:

  1. const person = { 
  2.   name: 'Fred', 
  3.   age: 26, 
  4.   work: { 
  5.     job: 'Blogger' 
  6.   } 
  7. };const {work: {job} } = person; 
  8. console.log(job); //prints: Blogger 

注意,在上面的代碼中,work 引用沒有被解構,只有最后一個嵌套屬性被分配給變量—job。為了使work 也得到嵌套屬性,我們需要

  1. const {work, work: {job} } = person; 

如果被解構對象中不存在鍵值,則會得到undefined 值。可以通過設置一個默認值來避免這種情況,如下所示:

JavaScript的解構技巧:排除對象屬性、避免命名沖突、交換……

現在考慮一下work 的屬性是否完全不可用。在這種情況下,需要用以下方式來書寫上面的解構表達式:

  1. const { work: { job = 'NA'salary = 'NA'} = {} } = person; 

在解構中使用計算屬性

到目前為止,都在利用靜態鍵值進行解構。但是對于具有動態鍵值的對象,需要使用計算屬性。計算屬性用方括號指定,如下所示:

  1. const person = { 
  2.   name: 'Fred', 
  3.   work: { 
  4.     job: 'Blogger' 
  5.   } 
  6. };let name = 'name'const { [name] : username } = person; 
  7. console.log(username); //Fred 

也可以創建屬性數組,如下所示:

JavaScript的解構技巧:排除對象屬性、避免命名沖突、交換……

訪問數組元素

就像對象解構一樣,數組解構也可以通過語法實現,如下所示:

  1. const arr = [1,2,3]; 
  2. const [a, b] = arr; 
  3. //a = 1b = 2 

可以在=后面為每個解構變量設置默認值。如果有不想分配給局部變量的項目,也可以選擇跳過。可以通過逗號操作符來實現:

  1. //skips the 2nd element 
  2. const [first,,third] = arr; 

對一個大數組使用逗號操作符可能是一項乏味的任務,我們可以使用類似語法的對象解構——通過索引訪問元素,如下所示:

  1. const arr = ['a','b','c','d'];const {0: first, 3: fourth} = arr; 
  2. console.log(fourth) //d 
  3. const {0: first, 3: fourth, 9: tenth = 'z'} = arr; 

上一條語句中定義了一個默認值,以防數組沒有索引。也可以用訪問對象的方式來訪問嵌套數組元素:

  1. const arr = ['a', [1, 2, 3] 
  2. const [first, [one, two, three]] = arr; 

使用Rest語法省略屬性

Rest語法用于挑選多個元素并將它們設置為一個新元素,這有助于解構時省略某個屬性。

  1. const arr = ["Hello", "How" , "are","you"];var [hello,...remaining] = arr; 
  2. console.log(remaining) // ["How" , "are", "you"] 

上述表達式也可以用于克隆數組。可以使用相同的邏輯來檢索或刪除嵌套對象:

JavaScript的解構技巧:排除對象屬性、避免命名沖突、交換……

解構可能看起來有些棘手,但一旦適應了,就可以利用它創建特定的模式,快速獲取所需要的東西。盡快掌握它吧!

 

責任編輯:趙寧寧 來源: 今日頭條
相關推薦

2023-07-06 07:55:15

Redis內存數據庫

2013-08-26 14:18:12

SELinux

2010-04-01 18:22:36

無線交換機故障

2021-04-01 17:04:34

Javascript語法數組

2024-06-18 10:28:46

2021-07-26 05:20:47

JavaScript解構賦值數組解構

2024-07-17 11:35:31

JavaScript解構賦值

2024-09-10 15:34:18

JavaScript解構賦值

2021-05-10 08:45:34

JavaScript開發對象

2020-06-09 09:13:12

JavaScript重構對象

2023-10-16 07:55:15

JavaScript對象技巧

2010-01-06 10:58:06

建立JavaScrip

2015-03-10 13:50:42

smartycss語法

2019-12-03 19:09:19

JavaScriptNumbers阿里云計算

2023-08-23 10:19:25

數據MySQL

2021-03-26 23:41:19

JavaScript對象開發

2012-03-29 09:57:06

jQuery

2023-07-24 07:11:43

2023-06-02 15:42:51

JavaScript數據結構對象

2013-05-22 14:25:17

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品精品 | 一区二区三区观看视频 | 美女一区 | 日韩高清中文字幕 | 欧美日韩在线精品 | 欧美日韩国产在线观看 | 日韩欧美一区二区三区免费观看 | 91丨九色丨国产在线 | 国产精品久久久久久久久久三级 | 国产69精品久久99不卡免费版 | 久久成人一区二区三区 | 天天久久 | 亚洲欧美日韩国产综合 | 久久99精品久久久久久 | 亚洲一区二区在线视频 | 久久久久高清 | 久久伊人一区二区 | 久久国产欧美一区二区三区精品 | 免费在线成人 | 久久伊人精品一区二区三区 | 欧美日韩福利视频 | 一级黄在线观看 | 日本精品久久 | 日韩www| 美女国产| 青久草视频 | 天堂成人av | 中文在线一区二区 | 久久久片| 国产欧美精品一区二区 | 亚洲国产成人久久久 | 国产欧美精品在线观看 | 91精品久久久久久久久 | 久久久亚洲一区 | 久久久久久中文字幕 | 国产视频一区二区在线观看 | 成人免费xxxxx在线视频 | 91在线免费观看网站 | 成人精品国产免费网站 | 久久久久九九九九 | 在线成人免费视频 |