發(fā)布于:2021-02-11 00:00:19
0
78
0
在過去的幾年中,JavaScript語言已經(jīng)受益于一些非常出色的新功能,包括箭頭函數(shù),擴(kuò)展運(yùn)算符和默認(rèn)函數(shù)參數(shù)值。即使您的瀏覽器尚不支持建議的JavaScript API語法添加,您也可以在Node.js應(yīng)用中使用Babel之類的工具來立即利用它們。
我最喜歡的JavaScript新功能之一是對象分解。如果您不熟悉JavaScript解構(gòu),那么它基本上提供了一種較短的語法來提取對象鍵的值,而不會引起點(diǎn)符號混亂:
// A sample object const myObject = { x: 1, y: 2 }; // Destructuring const { x, y } = myObject; // x is 1, y is 2
銷毀的基本語法非常簡單,但是當(dāng)這些自變量值應(yīng)具有默認(rèn)值時,將其與函數(shù)自變量一起使用會更加困難。以下是帶有默認(rèn)值的參數(shù)的函數(shù):
function myFunction(text = "", line = 0, truncate = 100) { // With default values, we can avoid a bunch of: text = text || ""; line = line || 0; truncate = truncate || 100; }
無論使用哪種語言,如果一個函數(shù)使用的參數(shù)超過約3個,則最好傳遞一個對象名稱options 或config 包含可能的鍵/值的對象。等效形式如下:
function myFunction(config) { } // Usage myFunction({ text: "Some value", line: 0, truncate: 100 } )
但是,如果您想在JavaScript函數(shù)參數(shù)中使用解構(gòu)怎么辦?以下功能簽名將變?yōu)椋?/span>
function myFunction({ text, line, truncate }) { }
如果要在功能配置中定義默認(rèn)值,請使用以下命令:
function myFunction({ text = "", line = 0, truncate = 100 } = {}) { // Even if the passed in object is missing a given key, the default is used! }
設(shè)置默認(rèn)值= { }很重要;如果沒有默認(rèn)值,則以下示例將出錯
TypeError: Cannot destructure property `key` of 'undefined' or 'null'
銷毀是一種很棒的語言功能,但可能導(dǎo)致混亂甚至錯誤。希望本指南中提供的基礎(chǔ)知識可以幫助您使用帶有功能的JavaScript解構(gòu)進(jìn)行導(dǎo)航!