JavaScript 擴展運算符用法實例小結【基于ES6】
本文實例講述了JavaScript 擴展運算符用法。分享給大家供大家參考,具體如下:
擴展運算符格式
擴展運算符格式很簡單,就是三個點(…)
重點:需要ES6 語法支持
擴展運算符作用???
擴展運算符允許一個表達式在期望多個參數(shù)(用于函數(shù)調用)或多個元素(用于數(shù)組字面量)或多個變量(用于解構賦值)的位置擴展。
1、將一個數(shù)組放入另一個數(shù)組中
下面開始通過四個例子來深刻理解擴展運算符
①. 創(chuàng)建一個數(shù)組middle
②. 創(chuàng)建第二個包含middle的數(shù)組
③. 輸出結果
var middle = [3, 4]; var arr = [1, 2, middle, 5, 6]; console.log(arr); // [1, 2, [3, 4], 5, 6]
在上例中,沒有使用擴展運算符。middle作為數(shù)組放入另一個數(shù)組中
2、如果想讓輸出結果只有一個數(shù)組???
這時候就用到擴展運算符,看下面例子,除了使用擴展運算符其他都與上面例子相同。
var middle = [3, 4]; var arr = [1, 2, ...middle, 5, 6]; console.log(arr); // [1, 2, 3, 4, 5, 6]
當創(chuàng)建數(shù)組arr和使用在middle數(shù)組上使用擴展運算符時,不是將middle數(shù)組直接插入到arr中,而是將middle數(shù)組擴展,然后將元素插入到arr中。
3、復制數(shù)組
slice()
是JavaScript數(shù)組的方法,作用是復制數(shù)組。我們同樣可以使用擴展運算符復制數(shù)組。
var arr = ['a', 'b', 'c']; var arr2 = [...arr]; console.log(arr2); // ['a', 'b', 'c']
arr數(shù)組中的元素擴展成為單獨元素被分配到arr2中。現(xiàn)在可以隨意改變arr2數(shù)組,且都不會對源數(shù)組arr產生影響
這是因為,arr數(shù)組值被擴展后添加到arr2數(shù)組中,我們設置arr2等于arr的值,而不是其本身。我們可以關注沒有擴展運算符時發(fā)生事情,就能理解了。
如果創(chuàng)建數(shù)組然后設置另一個數(shù)組等于其本身,如下:
var arr = ['a', 'b', 'c']; var arr2 = arr; console.log(arr2); // ['a', 'b', 'c']
現(xiàn)在我們將arr2數(shù)組賦值給arr數(shù)組,這意味著只要改變arr2,arr數(shù)組就會發(fā)生變化。
arr2.push('d'); console.log(arr2); // ['a', 'b', 'c', 'd'] console.log(arr); // ['a', 'b', 'c', 'd']
4、拼接數(shù)組
使用擴展運算符可以代替concat()
來拼接數(shù)組。
var arr = ['a', 'b', 'c']; var arr2 = ['d', 'e', 'f']; arr1 = arr.concat(arr2); console.log(arr); // ['a', 'b', 'c', 'd', 'e', 'f']
使用擴展運算符
var arr = ['a', 'b', 'c']; var arr2 = ['d', 'e', 'f']; arr = [...arr, ...arr2]; console.log(arr); // ['a', 'b', 'c', 'd', 'e', 'f']
5、Math
也可以使用math函數(shù)連同擴展運算符。如這個例子中,將使用Math.max()
Math.max()將返回一組數(shù)最大值。 Math.max(); // -Infinity Math.max(1, 2, 3); // 3 Math.max(100, 3, 4); // 100
在沒有擴展運算符,在數(shù)組上使用Math.max()
最容易方法就是使用.apply()
。
var arr = [2, 4, 8, 6, 0]; function max(arr) { return Math.max.apply(null, arr); } console.log(max(arr)); // 8
現(xiàn)在看看使用擴展運算符做同樣事情。只需要兩行代碼就可以做到同樣效果。
var arr = [2, 4, 8, 6, 0]; var max = Math.max(...arr); console.log(max); // 8
6、字符串轉數(shù)組
使用擴展運算符將字符串轉換為數(shù)組。
var str = "hello"; var chars = [...str]; console.log(chars); // ['h', 'e',' l',' l', 'o']
感興趣的朋友可以使用在線HTML/CSS/JavaScript代碼運行工具:http://tools.jb51.net/code/HtmlJsRun測試上述代碼運行效果。
更多關于JavaScript相關內容感興趣的讀者可查看本站專題:《JavaScript數(shù)組操作技巧總結》、《JavaScript排序算法總結》、《JavaScript數(shù)學運算用法總結》、《JavaScript數(shù)據(jù)結構與算法技巧總結》、《JavaScript遍歷算法與技巧總結》、《JavaScript查找算法技巧總結》及《JavaScript錯誤與調試技巧總結》
希望本文所述對大家JavaScript程序設計有所幫助。
相關文章
使用JS和canvas實現(xiàn)gif動圖的停止和播放代碼
這篇文章主要介紹了使用JS和canvas實現(xiàn)gif動圖的停止和播放代碼,非常具有實用價值,需要的朋友可以參考下2017-09-09探索JavaScript函數(shù)的無限可能(函數(shù)基本概念)
JavaScript中的函數(shù)是一種重要的編程概念,它允許我們封裝可重用的代碼塊,并在需要時進行調用,本文將深入介紹JavaScript函數(shù)的各個方面,包括函數(shù)定義和調用、參數(shù)和返回值、作用域和閉包、高階函數(shù)以及常見的函數(shù)應用場景,感興趣的朋友一起看看吧2023-08-08chatGPT前端流式輸出js實現(xiàn)三種方法—fetch、SSE、websocket
項目需要接入chatgpt提供的api,后端返回流式的字符,前端接收并實時顯示,在JavaScript中,使用Stream流通常指的是處理數(shù)據(jù)流的一種方式,它們允許數(shù)據(jù)被處理成塊,而不是一次性處理整個數(shù)據(jù)集,這對于處理大量數(shù)據(jù)或者來自網(wǎng)絡請求的數(shù)據(jù)非常有用,2024-07-07Javascript獲取隨機數(shù)的實現(xiàn)方法
下面小編就為大家?guī)硪黄狫avascript獲取隨機數(shù)的實現(xiàn)方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-06-06阿里巴巴技術文章分享 Javascript繼承機制的實現(xiàn)
這篇文章主要介紹了阿里巴巴技術文章,分享的是一篇關于Javascript實現(xiàn)繼承機制的文章,感興趣的小伙伴們可以參考一下2016-01-01