摘要:擴(kuò)展運(yùn)算符是以下簡稱中又一非常好用的實(shí)戰(zhàn)技術(shù)它的寫法只需要三個(gè)點(diǎn)作用則顧名思義用來展開你想要使用的任意變量本質(zhì)上是對所有擁有迭代器接口的對象進(jìn)行迭代。
擴(kuò)展運(yùn)算符(spreading)是 ECMASCRIPT 6(以下簡稱ES 6) 中又一非常好用的實(shí)戰(zhàn)技術(shù), 它的寫法只需要三個(gè)點(diǎn)(...),作用則顧名思義,用來展開你想要使用的任意變量,本質(zhì)上是對所有擁有迭代器接口(Iterator)的對象進(jìn)行迭代。
典型應(yīng)用用于展開(迭代)數(shù)組元素
const labels = ["ES 5", "ES 6", "React.js", "Vue.js", "Node.js"]; console.log("label elements: ", ...labels); // ES 5 ES 6 React.js Vue.js Node.js
展開未使用的鍵值, 并放到剩余參數(shù)對象中去
數(shù)組中的擴(kuò)展剩余參數(shù) 只取想要使用的第一個(gè)變量 const labels = ["javascript", "ES 5", "ES 6", "React.js", "Vue.js", "Node.js", "React-Native"]; const [main, ...rest] = labels; main // "javascript" rest // ["ES 5", "ES 6", "React.js", "Vue.js", "Node.js", "React-Native"]; 對象中的剩余參數(shù) const editor = { id: "1688", name: "handome_boy", age: 18, male: 1 } 只想要使用 id 字段, 其它字段需要另作它用時(shí): const { id, ...rest } = editor; console.log(id); // 1688 console.log(rest); // { name: "handome_boy", age: 18, male: 1 }經(jīng)典實(shí)戰(zhàn)
復(fù)制數(shù)組
const labels = ["segementfault", "好看", "實(shí)用"]; const copy_array = [...labels]; 把擴(kuò)展后的 labels 的元素又放在一個(gè)新的數(shù)組字面量中, 即可得到一個(gè)新數(shù)組, 新數(shù)組與舊數(shù)組是使用不同的內(nèi)存空間 labels === copy_array // false 效果類似 slice, 但用法簡潔, 誰用誰喜歡 : )
合并數(shù)組
const tag1 = ["前端", "設(shè)計(jì)", "產(chǎn)品"]; const tag2 = ["后端", "數(shù)據(jù)庫", "緩存"]; const merge_tags = [...tag1, ...tag2]; console.log(merge_tags); // ["前端", "設(shè)計(jì)", "產(chǎn)品", "后端", "數(shù)據(jù)庫", "緩存"]; 相比于 tag1.concat(tag2); 擴(kuò)展運(yùn)算符的用法簡直簡約到極致, 除了理解容易, 也具有幾何的對稱美
合并對象
const response = { itemid: 1068, name: "segementfault", tags: ["前端", "設(shè)計(jì)", "產(chǎn)品"], pv: 8888 } const merged_response = { ...response, name: "掘銀", tags: ["后端", "數(shù)據(jù)庫", "緩存"] }; console.log(merged_response); // { itemid: 1068, name: "segementAdult", tags: ["后端", "數(shù)據(jù)庫", "緩存"], pv: 8888 } 效果形同 Object.assign, 也是右邊的同名字段會(huì)覆蓋左邊的同名字段, 但誰更簡潔, 一目了然
合并剩余參數(shù)
在定義函數(shù)時(shí), 把用不到的參數(shù)合并到一個(gè)對象中, 集中管理 const calcalute_date = (mode = "fullDate", ...rest) => { if(mode === "timestamp") { return Date.now(); } return rest.join("-"); } calcalute_date("fullDate", "2019", "05", "26"); // 2019-05-26
在 React 中 透傳 props
const Button = props => { const { title = "確定", style = {}, ...rest } = props; return ({ title }) } 組件的某些屬性不需要特意從 props 中解構(gòu)出來, 那就使用 rest 從組件最外層透傳進(jìn)來, 例如 onClick, 或是某些自定義事件, 這樣即使組件定義 簡單優(yōu)雅, 也達(dá)到了支持透傳任意多的屬性/方法的目的 另外本例也在style中使用擴(kuò)展運(yùn)算符作了 合并樣式組件(style)的操作
三個(gè)小點(diǎn),身材小巧,功能強(qiáng)大,還猶豫什么,實(shí)際開發(fā)中, 走你!!!
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/109832.html
摘要:相信解構(gòu)賦值自以下簡稱面世以來被大家快速地熟悉并運(yùn)用到實(shí)際開發(fā)中了這是一種能有效減少代碼量,使代碼邏輯更簡單優(yōu)雅的技術(shù)下面我們就再來回顧總結(jié)一下解構(gòu)賦值的種種用法吧基本用法從對象解構(gòu)假設(shè)有一個(gè)對象,它的結(jié)構(gòu)為以對稱的形式從從邊的對象中匹配與 相信解構(gòu)賦值(Destructuring)自 ECMASCRIPT 6(以下簡稱 ES 6) 面世以來被大家快速地熟悉并運(yùn)用到實(shí)際開發(fā)中了, 這是...
摘要:瀏覽器只是實(shí)現(xiàn)的宿主環(huán)境之一,其他宿主環(huán)境包括和。年月,版發(fā)布,成為國際標(biāo)準(zhǔn)。事件定義了事件和事件處理的接口。對于已經(jīng)正式納入標(biāo)準(zhǔn)的來說,盡管各瀏覽器都實(shí)現(xiàn)了某些眾所周知的共同特性,但其他特性還是會(huì)因?yàn)g覽器而異。 JavaScript 是面向 Web 的編程語言,絕大多數(shù)現(xiàn)代網(wǎng)站都使用了 JavaScript,并且所有的現(xiàn)代 Web 瀏覽器(電腦,手機(jī),平板)均包含了 JavaScri...
摘要:最近重構(gòu)了一個(gè)項(xiàng)目,引入了部分用法,最大的感受是讓這門語言變得更加嚴(yán)謹(jǐn),更加方便。通過該方法獲得位置后還得比較一次才能判斷是否存在。再來看看的寫法使用數(shù)組來初始化一個(gè),構(gòu)造器能確保不重復(fù)地使用這些值。下面提供鏈接,供有興趣的朋友參考。 最近重構(gòu)了一個(gè)SPA項(xiàng)目,引入了部分ES6用法,最大的感受是ES6讓javascript這門語言變得更加嚴(yán)謹(jǐn),更加方便。本篇將結(jié)合實(shí)戰(zhàn)經(jīng)驗(yàn),對最常用的部...
摘要:正大力推進(jìn),網(wǎng)景通訊公司即將與他們達(dá)成一項(xiàng)協(xié)議,讓可以用在瀏覽器上。年月,網(wǎng)景通訊公司和達(dá)成協(xié)議將被重新命名為,它將會(huì)作為瀏覽器中小型客戶端任務(wù)的一種腳本語言,同時(shí)將會(huì)被提升為一種更大的開發(fā)富組件的專業(yè)工具。 本文轉(zhuǎn)載自:眾成翻譯譯者:網(wǎng)絡(luò)埋伏紀(jì)事審校: 為之漫筆鏈接:http://www.zcfy.cc/article/2389原文:https://auth0.com/blog/a-...
摘要:它是一個(gè)通用標(biāo)準(zhǔn),奠定了的基本語法。年月發(fā)布了的第一個(gè)版本,正式名稱就是標(biāo)準(zhǔn)簡稱。結(jié)語的基本擴(kuò)展還有一些沒有在這里詳細(xì)介紹。 前言 ES6標(biāo)準(zhǔn)以及頒布兩年了,但是,好像還沒有完全走進(jìn)我們的日常開發(fā)。這篇文章從ES6的基本類型擴(kuò)展入手,逐步展開對ES6的介紹。 ECMAScript和JavaScript JavaScript是由Netscape創(chuàng)造的,該公司1996年11月將JavaSc...
閱讀 1127·2021-10-09 09:43
閱讀 18579·2021-09-22 15:52
閱讀 1069·2019-08-30 15:44
閱讀 3061·2019-08-30 15:44
閱讀 3251·2019-08-26 14:07
閱讀 913·2019-08-26 13:55
閱讀 2572·2019-08-26 13:41
閱讀 3095·2019-08-26 13:29