深入淺出JS解構賦值

一、基礎概念

JS解構賦值是一種通過解構對象或數組的方式,來同時給多個變量賦值的一種語法。它是在ES6中新增的特性。

它的基本語法是:“let {a,b} = {a:1, b:2}”,其中“{a,b}”就是解構語法,它表示將對象里的屬性“a”和“b”賦值給對應的變量“a”和“b”。

除了對象之外,數組也可以通過解構語法來進行賦值,它的語法是:“let [a,b] = [1,2]”,其中“[a,b]”就是解構語法,它表示將數組元素的值“1”和“2”分別賦值給對應的變量“a”和“b”。

// 對象解構示例
let obj = {name:'小明',age:18}
let {name,age} = obj
console.log(name) // 小明
console.log(age) // 18

// 數組解構示例
let arr = [1,2,3]
let [a,b,c] = arr
console.log(a) // 1
console.log(b) // 2
console.log(c) // 3

二、默認值的使用

JS解構賦值還支持使用默認值,這樣當變量沒有值或者值為undefined時,就會賦上默認值。

// 使用默認值
let [a=1,b=2,c=3] = [1,undefined,null]
console.log(a) // 1
console.log(b) // 2
console.log(c) // null

注意:

當解構後的值為null時,不會使用默認值。另外,在對象解構中使用默認值的寫法是“let {a=’hello’,b=’world’} = {a:’hi’, c:’goodbye’}”,如果解構對象中不存在要解構的屬性,那麼使用的就是默認值。

三、重命名

JS解構賦值還支持重命名的功能,即在解構的同時將屬性或變量名進行重命名。這樣可以避免變量名重複或者取一個更好的變量名。

// 重命名
let {x:y} = {x:1}
console.log(y) // 1

從上面的例子可以看出,我們將解構對象的屬性“x”的值賦給了變量“y”,實現了重命名的效果。

四、嵌套解構

JS解構賦值還支持嵌套解構,即在解構對象中存在對象或數組的情況下,也可以使用解構賦值。

// 嵌套解構
let obj = {name:'小明',score:{math:90,english:80}}
let {name,score:{math,english}} = obj
console.log(name) // 小明
console.log(math) // 90
console.log(english) // 80

從上面的例子可以看到,我們成功地從一個嵌套的對象裡面解構出了它的屬性值。

五、應用場景

1、函數參數的解構賦值

JS解構賦值可以用來對函數參數進行解構賦值,這樣可以簡化函數的調用過程,並且讓函數的意圖更加明顯。

// 函數參數的解構賦值
function printInfo({name,age}){
    console.log(`我的名字是${name},今年${age}歲`)
}
printInfo({name:'小李',age:20}) // 我的名字是小李,今年20歲

2、交換變量的值

JS解構賦值可以用來交換兩個變量的值,而不需要藉助第三個變量。

// 交換變量的值
let a = 1
let b = 2
[a,b] = [b,a]
console.log(a) // 2
console.log(b) // 1

3、提取對象中的多個屬性值

JS解構賦值可以用來從一個對象中提取多個屬性值,並將它們賦值給對應的變量。

// 提取對象中的多個屬性值
let obj = {name:'小明',age:18,gender:'男',score:90}
let {name,age,score} = obj
console.log(name,age,score) // 小明 18 90

4、函數返回值的解構

JS解構賦值可以用來對函數返回值進行解構,這樣可以讓函數返回值的意圖更加明顯。

// 函數返回值的解構
function getScore(){
    return {math:90,english:80}
}
let {math,english} = getScore()
console.log(math,english) // 90 80

六、總結

JS解構賦值是一種簡潔、靈活的變量賦值方式,它能夠以一種可讀性強的方式讓變量賦值更加直觀明了。我們在實際開發中可以結合函數參數、交換變量值、提取對象屬性值等場景來使用JS解構賦值。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/313015.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2025-01-06 15:17
下一篇 2025-01-06 15:25

相關推薦

  • JS Proxy(array)用法介紹

    JS Proxy(array)可以說是ES6中非常重要的一個特性,它可以代理一個數組,監聽數據變化並進行攔截、處理。在實際開發中,使用Proxy(array)可以方便地實現數據的監…

    編程 2025-04-29
  • 解析js base64並轉成unit

    本文將從多個方面詳細介紹js中如何解析base64編碼並轉成unit格式。 一、base64編碼解析 在JavaScript中解析base64編碼可以使用atob()函數,它會將b…

    編程 2025-04-29
  • Node.js使用Body-Parser處理HTTP POST請求時,特殊字符無法返回的解決方法

    本文將解決Node.js使用Body-Parser處理HTTP POST請求時,特殊字符無法返回的問題。同時,給出一些相關示例代碼,以幫助讀者更好的理解並處理這個問題。 一、問題解…

    編程 2025-04-29
  • Python文件路徑賦值

    Python中文件操作是非常基本的操作,而文件路徑是文件操作的前提。本文將從多個方面闡述如何在Python中賦值文件路徑。 一、絕對路徑和相對路徑 在Python中,路徑可以分為絕…

    編程 2025-04-28
  • 如何使用Python將輸出值賦值給List

    對標題進行精確、簡明的解答:本文將從多個方面詳細介紹Python如何將輸出的值賦值給List。我們將分步驟進行探討,以便讀者更好地理解。 一、變量類型 在介紹如何將輸出的值賦值給L…

    編程 2025-04-28
  • Python中賦值運算符和相等運算符解析

    Python是一種高級編程語言,它通常被用於開發 Web 應用程序、人工智能、數據分析和科學計算。在Python中,賦值運算符和相等運算符是非常常見和基本的運算符,它們也是進行編程…

    編程 2025-04-28
  • t3.js:一個全能的JavaScript動態文本替換工具

    t3.js是一個非常流行的JavaScript動態文本替換工具,它是一個輕量級庫,能夠很容易地實現文本內容的遞增、遞減、替換、切換以及其他各種操作。在本文中,我們將從多個方面探討t…

    編程 2025-04-28
  • Python中賦值種類

    本篇文章將從多個方面對Python中賦值種類做詳細的闡述,包括普通賦值、序列解包賦值、鏈式賦值、增量賦值和全局賦值。 一、普通賦值 普通賦值是Python中最基礎的賦值操作,通過等…

    編程 2025-04-28
  • Python同步賦值語句的使用方法和注意事項

    Python同步賦值語句是Python中用來同時為多個變量賦值的一種方法。通過這種方式,可以很方便地同時為多個變量賦值,從而提高代碼的可讀性和編寫效率。下面從多個方面詳細介紹Pyt…

    編程 2025-04-28
  • JS圖片沿着SVG路徑移動實現方法

    本文將為大家詳細介紹如何使用JS實現圖片沿着SVG路徑移動的效果,包括路徑製作、路徑效果、以及實現代碼等內容。 一、路徑製作 路徑的製作,我們需要使用到SVG,SVG是可縮放矢量圖…

    編程 2025-04-27

發表回復

登錄後才能評論