在es6中,解構是按照一定模式從數組和物件中提取值,對變數進行賦值的過程;它是一種打破資料結果,將其拆分為更小部分的過程,可以達到簡化擷取資訊的目的;比較常見的有物件解構、陣列解構和混合解構。
本教學操作環境:windows10系統、ECMAScript 6.0版、Dell G3電腦。
什麼是es6的解構
destructuring:百度百科的意思是結構分解,ES6 中允許按照一定模式,從數組和物件中提取值,對變數進行賦值,這被稱為解構(Destructuring)。
開發中較常見的有物件解構、 陣列解構、混合解構。這是一種將資料結構分解為更小的部分的過程,從而達到簡化提取資訊的目的。
逐一拆分現有的物件或數組,來擷取你所需要的資料。是一種打破資料結構,將其拆分為更小部分的過程
ES6使用了一種新模式來匹配你想要提取的數值, 解構賦值就是採用了這種模式。這個模式會映射出你正在解構的資料結構,只有那些與該模式相符的數據,才會被提取出來。
範例物件解構
傳統方法取得物件中的值
let node = { type: 'Identifier', name: 'foo' } console.log(node.type) // Identifier console.log(node.foo) // foo
使用解構
let node = { type: 'Identifier', name: 'foo' } let { type, name } = node console.log(type) // Identifier console.log(name) // foo
如果指定的局部變數名稱在物件中不存在,那麼這個局部變數會被賦值為undefined
let { type, name, value } = node console.log(type) // Identifier console.log(name) // foo console.log(value) // undefined
當指定的屬性不存在時,可以給不存在的屬性定義任意的預設值
let { type, name, value = true } = node console.log(type) // Identifier console.log(name) // foo console.log(value) // true
指定新的變數名稱進行解構賦值
let arr = { six: '男', age: 19 } let {six:newSix, age:newAge} = arr console.log(six, age) // six is not defined console.log(newSix, newAge) // 男 19
看上面是不是覺得很奇怪,傳統物件賦值都是左邊四屬性,右邊是值。但是在解構寫法中右邊是屬性,左邊是值,所以新的變數名稱在右邊。
如果使用let、var、const對物件進行解構時,被解構物件的值就不能不存在。
不使用var、let、const賦值時,需要將解構語句使用()進行包裹
({type,name} = node);//{}在js中作为代码块,单独使用加等号会报错会报错
#嵌套物件解構
在物件嵌套物件中解構,我們會在第一層解構中繼續使用花括號來深入下一層進行查找;我們先來看一個栗子:
let node = { type: "Identifier", name: "foo", loc: { start: { line: 1, column: 1 }, end: { line: 1, column: 4 } } }
上面是一個嵌套物件node,我們先解構第一層
let { loc, type, name } = node // {} Identifier foo
可以看到我們特意打亂了{}中屬性的順序,結果仍然正確輸出,所以可以猜到具體的對應方式應該是根據名字來對應的,和順序無關。
繼續解構第二層
let { loc: { start }} = node; console.log(start.line); // 1 console.log(start.column); // 4
這裡我們也可以將start賦值給一個新的自訂的局部變量,假設我們賦值給newStart
let { loc: { start: newStart }} = node console.log(newStart.line) // 1 console.log(newStart.column) // 4
總結如下:
所有冒號前的識別碼都代表在物件中的檢索位置,其右側為被賦值的變數名稱;如果冒號後面是花括號,則表示要賦予的最終值嵌套在物件內部更深的層級中。
【相關推薦:javascript影片教學、web前端】
以上是什麼是es6的解構的詳細內容。更多資訊請關注PHP中文網其他相關文章!

React是前端框架,用於構建用戶界面;後端框架用於構建服務器端應用程序。 React提供組件化和高效的UI更新,後端框架提供完整的後端服務解決方案。選擇技術棧時需考慮項目需求、團隊技能和可擴展性。

HTML和React的關係是前端開發的核心,它們共同構建現代Web應用的用戶界面。 1)HTML定義內容結構和語義,React通過組件化構建動態界面。 2)React組件使用JSX語法嵌入HTML,實現智能渲染。 3)組件生命週期管理HTML渲染,根據狀態和屬性動態更新。 4)使用組件優化HTML結構,提高可維護性。 5)性能優化包括避免不必要渲染,使用key屬性,保持組件單一職責。

React是構建交互式前端體驗的首選工具。 1)React通過組件化和虛擬DOM簡化UI開發。 2)組件分為函數組件和類組件,函數組件更簡潔,類組件提供更多生命週期方法。 3)React的工作原理依賴虛擬DOM和調和算法,提高性能。 4)狀態管理使用useState或this.state,生命週期方法如componentDidMount用於特定邏輯。 5)基本用法包括創建組件和管理狀態,高級用法涉及自定義鉤子和性能優化。 6)常見錯誤包括狀態更新不當和性能問題,調試技巧包括使用ReactDevTools和優

React是一個用於構建用戶界面的JavaScript庫,其核心是組件化和狀態管理。 1)通過組件化和狀態管理簡化UI開發。 2)工作原理包括調和和渲染,優化可通過React.memo和useMemo實現。 3)基本用法是創建並渲染組件,高級用法包括使用Hooks和ContextAPI。 4)常見錯誤如狀態更新不當,可使用ReactDevTools調試。 5)性能優化包括使用React.memo、虛擬化列表和CodeSplitting,保持代碼可讀性和可維護性是最佳實踐。

React通過JSX與HTML結合,提升用戶體驗。 1)JSX嵌入HTML,使開發更直觀。 2)虛擬DOM機制優化性能,減少DOM操作。 3)組件化管理UI,提高可維護性。 4)狀態管理和事件處理增強交互性。

React組件可以通過函數或類定義,封裝UI邏輯並通過props接受輸入數據。 1)定義組件:使用函數或類,返回React元素。 2)渲染組件:React調用render方法或執行函數組件。 3)復用組件:通過props傳遞數據,構建複雜UI。組件的生命週期方法允許在不同階段執行邏輯,提升開發效率和代碼可維護性。

React嚴格模式是一種開發工具,可通過激活其他檢查和警告來突出反應應用中的潛在問題。它有助於識別遺產代碼,不安全的生命週期和副作用,鼓勵現代反應實踐。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

Atom編輯器mac版下載
最受歡迎的的開源編輯器

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境

SublimeText3漢化版
中文版,非常好用

WebStorm Mac版
好用的JavaScript開發工具

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器