日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

解构

發布時間:2025/5/22 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 解构 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

解構賦值的作用

解構賦值允許你使用類似數組或對象字面量的語法將數組和對象的屬性賦給各種變量

對象的解構

在賦值語句的左側使用了對象字面量,即key

let node = {type: "Identifier",name: "foo" }; let { type, name } = node; console.log(type); // "Identifier" console.log(name); // "foo"

對象的解構賦值

let node = {type: "Identifier",name: "foo"}, type = "Literal", name = 5; // 使用解構來分配不同的值 必須用圓括號包裹解構賦值語句 ({ type, name } = node); console.log(type); // "Identifier" console.log(name); // "foo"

注意:對象的解構賦值若沒有沒var/let/const聲明則要使用小括號括起來,因為JavaScript語法通知解析引擎將任何以{開始的語句解析為一個塊語句(例如,{console}是一個合法塊語句)。而數組的解構賦值就不需要用小括號括起來。

默認值

在對象中沒有找到同名屬性,那么該變量會被賦值為 undefined

let node = {type: "Identifier",name: "foo" }; let { type, name, value } = node; console.log(type); // "Identifier" console.log(name); // "foo" console.log(value); // undefined

可以選擇性地定義一個默認值,以便在指定屬性不存在時使用該值

let node = {type: "Identifier",name: "foo" }; let { type, name, value = true } = node; console.log(type); // "Identifier" console.log(name); // "foo" console.log(value); // true

賦值給不同的本地變量名

let node = {type: "Identifier" }; let { type: localType, name: localName="bar" } = node; console.log(localType); // "Identifier" console.log(localName); // "bar"

每當有一個==冒號==在解構模式中出現,就意味著冒號左邊的標識符代表需要檢查的位置,而冒號右側則是賦值的目標

對象嵌套的解構

let node = {type: "Identifier",name: "foo",loc: {start: {line: 1,column: 1}} }; let {loc: {start}} = node; console.log(start) // {line: 1, column: 1}

數組的解構

數組的解構和對象的解構很相似

let colors = [ "red", "green", "blue" ]; let [ color1, color2 ] = colors; console.log(color1); // "red" console.log(color2); // "green"

也可以在解構模式中忽略一些項,并且只給需要獲取的項提供變量名

let colors = [ "red", "green", "blue" ]; let [ , , color3 ] = colors; console.log(color3); // "blue"

color3之前的逗號,是為數組前面的項提供占位符。使用這種方法,你就可以輕易從數組任意位置取出值,而無須給其他項提供變量名。

數組的解構賦值

let colors = [ "red", "green", "blue" ],color1 = "black",color2 = "purple";[ color1, color2 ] = colors;console.log(color1); // "red" console.log(color2); // "green"

注意:這里的解構賦值沒有使用小括號,而對象的解構賦值有時是需要的。

默認值

let colors = [ "red" ]; let [ firstColor, secondColor = "green" ] = colors; console.log(firstColor); // "red" console.log(secondColor); // "green

數組嵌套的解構賦值

let colors = [ "red", [ "green", "lightgreen" ], "blue" ]; let [ color1, [ color2 ] ] = colors; console.log(color1); // "red" console.log(color2); // "green let colors = [ "red", [ "green", "lightgreen" ], "blue" ]; let [ color1, color2] = colors; console.log(color1); // "red" console.log(color2); // ["green", "lightgreen"]

注意以上兩個例子的區別

剩余項的解構賦值

let colors = [ "red", "green", "blue" ]; let [ firstColor, ...restColors ] = colors; console.log(firstColor); // "red" console.log(restColors); // ["green", "blue"] console.log(restColors[0]); // "green"

混合解構賦值

let node = {type: "Identifier",name: "foo",loc: {start: {line: 1,column: 1},end: {line: 1,column: 4}},range: [0, 3]}; let {loc:{start},range: arr } = node; console.log(start); // {line: 1, column: 1} console.log(arr); // [0, 3]

參數解構

當 JS 的函數接收大量可選參數時,一個常用模式是創建一個 options 對象,如下代碼:

// options 上的屬性表示附加參數 function setCookie(name, value, options) {options = options || {};let secure = options.secure,path = options.path,domain = options.domain,expires = options.expires;// 設置 cookie 的代碼 } // 第三個參數映射到 options setCookie("type", "js", {secure: true,expires: 60000 });

這樣寫有一個很不太友善的地方,就是無法僅通過查看函數定義就判斷出函數所期望的輸入,你必須閱讀函數體的代碼。
無法僅通過查看函數定義就判斷出函數所期望的輸入,你必須閱讀函數體的代碼。如下代碼:

function setCookie(name, value, { secure, path, domain, expires }) {// 設置 cookie 的代碼 } setCookie("type", "js", {secure: true,expires: 60000 });

解構的參數是必須的

如果你使用解構的參數定義了一個函數,并且在調用該函數時沒有給該結構參數賦值,那么程序會報錯。為了解決這個問題,通常在函數聲明時給給該解構參數賦值空對象。就像下面的代碼。

function setCookie(name, value, { secure, path, domain, expires } = {}) {// ... }

參數解構的默認值

function setCookie(name, value, {secure = false,path = "/",domain = "example.com",expires = new Date(Date.now() + 360000000)} = {}) {// ...}

此代碼中參數解構給每個屬性都提供了默認值,所以你可以避免檢查指定屬性是否已被傳入(以便在未傳入時使用正確的值)。而整個解構的參數同樣有一個默認值,即一個空對象,令該參數成為可選參數。

轉載于:https://www.cnblogs.com/renzhiwei2017/p/7344437.html

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的解构的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 黄色网日本 | 国产地址 | 国产精品福利在线观看 | 男男成人高潮片免费网站 | 中文字幕在线播放日韩 | 成人中文网 | 国产色视频网站 | 免费在线性爱视频 | 公侵犯人妻中文字慕一区二区 | 国产处女 | 中文字幕亚洲专区 | 午夜电影网站 | 91爱国产| 国产第一草草影院 | 天堂综合网 | 国产在线精品观看 | 国产三级观看 | 黄色大片免费在线观看 | 黄色片上床 | 亚洲日本欧美精品 | 91久久久国产精品 | 亚洲淫欲 | 天天综合网天天综合色 | 逼逼av| wwwwxxxx国产| 国产精品刺激 | 北条麻妃青青久久 | 91五月天| 美女黄色小视频 | 日本中文字幕在线免费观看 | 西比尔在线观看完整视频高清 | av加勒比在线 | 美日韩三级 | 曰本无码人妻丰满熟妇啪啪 | 国产亚洲精品熟女国产成人 | 国产美女免费 | 在线观看亚洲网站 | 一卡二卡久久 | 麻豆一区产品精品蜜桃的特点 | 闷骚老干部cao个爽 av九九九 | 69av片 | 日韩欧美偷拍 | 性色视频网站 | 国产在线观看av | 九九热这里有精品 | 免费日本黄色 | 91高清在线视频 | 亚洲一区h | 久久亚洲AV成人无码国产人妖 | 国产一区二区三区播放 | 国产一级片免费观看 | 亚洲欧美a | 久草资源在线观看 | 精久久久| 欧美激情精品久久久久久免费 | www国产在线观看 | av日韩国产 | 日本69av | 国产午夜福利视频在线观看 | 黑人无套内谢中国美女 | 日本一区二区三区在线观看 | 美女伦理水蜜桃4 | 黄色片一区二区 | 国产成人精品999在线观看 | 新天堂在线 | 亚洲高清在线视频 | 少妇激情一区二区三区视频 | 国产人妻精品一区二区三区 | 国产黄色在线播放 | 九九热在线免费视频 | 色骚网 | 青娱乐在线视频免费观看 | 大尺度在线观看 | 淫妹妹影院 | 91日韩精品 | 日韩一区二区三区不卡视频 | 日韩无码专区 | 色吧久久| 免费人妻精品一区二区三区 | 日韩黄网 | 欧美成年人视频在线观看 | 强行挺进白丝老师里呻吟 | 五月天综合婷婷 | 亚洲综合专区 | 成人免费国产 | 高潮无码精品色欲av午夜福利 | 日本成人一区二区 | 久久女同互慰一区二区三区 | 成人性生交大全免 | 少妇人妻无码专区视频 | 日韩综合一区二区 | xxxxwwww在线观看 | 波多野结衣久久精品 | 国产真实乱 | 一区二区三区免费看视频 | 久久国产精品久久久久久电车 | 97在线免费观看视频 | 91毛片观看 | 亚洲视频中文字幕 |