首頁 web前端 js教程 ES6擴充運算符

ES6擴充運算符

Aug 19, 2017 am 10:22 AM
擴充 運算符

ES6的擴充運算子可以說是非常使用的,在給多參數函數傳參,取代Apply,合併數組,和解構配合進行賦值方面提供了很好的便利性。

擴充運算子就是三個點“...”,就是將實作了Iterator 介面的物件中的每個元素都一個個的迭代並取出來變成單獨的被使用。

看這個範例:

console.log(...[3, 4, 5])
登入後複製

#結果:

3 4 5
登入後複製

呼叫其實就是:

console.log(3, 4, 5)
登入後複製

合併陣列

可以使用擴充運算子將多個陣列進行合併。

let arr1 = [1, 2, 3]
let arr2 = [4, 5, 6]
let arr3 = [7, 8, 9]
console.log([...arr1, ...arr2, ...arr3])
登入後複製

結果:

#
[ 1, 2, 3, 4, 5, 6, 7, 8, 9 ]
登入後複製

函數多參數傳遞, 取代Apply

先把參數定義成數組,函數定義好。

let arr4 = ['arg1', 'arg2', 'arg3', 'arg4']
let fun1 = (a1, a2, a3, a4) => {
  console.log( a1, a2, a3, a4)
}
登入後複製

在ES6前,要把陣列參數傳遞給函數,或是依照下標存取陣列元素去呼叫函數,缺點是陣列個數和函數參數個數完全綁定,有一個個數發生變化,那麼就要修改了。

fun1(arr4[0], arr4[1], arr4[2], arr4[3])
登入後複製

要嘛就用Apply進行調用,結果當然是沒毛病,也是ES6之前用的最多的。

fun1.apply(null, arr4)
登入後複製

如果是用擴充運算符,那就方便咯。

fun1(...arr4)
登入後複製

結果:

#
arg1 arg2 arg3 arg4
登入後複製

呼叫簡潔爽快。

與解構配合賦值

搭配使用,可以從陣列中提取除第一個以後的所有元素成另外一個陣列。

let [var1, ...arr5] = [1, 2, 3, 4, 5, 6]
console.log(var1)
console.log(arr5)
登入後複製

結果:

#
1[ 2, 3, 4, 5, 6 ]
登入後複製

但要注意,與解構配合時,擴展運算子只能用在最後一個上,否則報錯。

可以展開實作了Iterator 介面的物件

#例如Map,Set,陣列就是從Iterator介面實作來的,Object不是,所以擴充Object會報錯。

擴充Set。

let set1 = new Set()
set1.add(1)
set1.add(2)
set1.add(3)
console.log(...set1)
登入後複製

結果:

#
1 2 3
登入後複製

擴充Map。

let map1 = new Map();
map1.set('k1', 1);
map1.set('k2', 2);
map1.set('k3', 3);
console.log(...map1)
登入後複製

結果:

#
[ 'k1', 1 ] [ 'k2', 2 ] [ 'k3', 3 ]
登入後複製

注意,擴展出來的一個個的數組,依照map的鍵值對結構,每個陣列都是2個元素,一個是key,一個是value。

如果擴充Object,就會報錯。

let obj1 = {
   p1: 1,
   p2: 2,
   p3: 3}
console.log(...obj1)
登入後複製

以上是ES6擴充運算符的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1655
14
CakePHP 教程
1413
52
Laravel 教程
1306
25
PHP教程
1252
29
C# 教程
1226
24
PHP 函數的擴充和第三方模組 PHP 函數的擴充和第三方模組 Apr 13, 2024 pm 02:12 PM

若要擴充PHP函數功能,可以使用擴充和第三方模組。擴充功能提供附加函數和類,可透過pecl套件管理器安裝和啟用。第三方模組提供特定功能,可透過Composer套件管理器安裝。實作案例包括使用擴充解析複雜JSON資料和使用模組驗證資料。

CENTOS7下如何安裝mbstring擴充? CENTOS7下如何安裝mbstring擴充? Jan 06, 2024 pm 09:59 PM

1.UncaughtError:Calltoundefinedfunctionmb_strlen();出現如上錯誤時,說明我們沒裝上mbstring擴展;2.進入PHP安裝目錄cd/temp001/php-7.1.0/ext/mbstring3.啟動phpize(/usr/local/bin /phpize或/usr/local/php7-abel001/bin/phpize)指令來安裝php擴充4../configure--with-php-config=/usr/local/php7-abel

C語言中+=運算子的意義與用法解析 C語言中+=運算子的意義與用法解析 Apr 03, 2024 pm 02:27 PM

+=運算子用於將左操作數的值加上右操作數的值,並將結果賦值給左操作數,適用於數字類型且左操作數必須可寫。

Python 語法的心智圖:深入理解程式碼結構 Python 語法的心智圖:深入理解程式碼結構 Feb 21, 2024 am 09:00 AM

python憑藉其簡單易讀的語法,廣泛應用於廣泛的領域。掌握Python語法的基礎架構至關重要,既可以提高程式效率,又能深入理解程式碼的運作方式。為此,本文提供了一個全面的心智圖,詳細闡述了Python語法的各個面向。變數和資料類型變數是Python中用於儲存資料的容器。心智圖展示了常見的Python資料類型,包括整數、浮點數、字串、布林值和列表。每個資料類型都有其自身的特性和操作方法。運算符運算符用於對資料類型執行各種操作。心智圖涵蓋了Python中的不同運算子類型,例如算術運算子、比

深入了解Laravel Redis擴充的使用方法 深入了解Laravel Redis擴充的使用方法 Mar 09, 2024 pm 02:03 PM

Laravel是一款受歡迎的PHP開發框架,擁有豐富的功能和靈活的擴充性,其中Redis擴充則是常用的一種資料庫快取工具。本文將深入探討Laravel中Redis擴展的使用方法,詳細介紹其基本概念、配置方式和具體程式碼範例,幫助開發者更好地利用Redis擴展提升系統效能。一、什麼是RedisRedis是一個開源的記憶體資料儲存系統,也被稱為

搜狗瀏覽器右上角顯示的擴充功能不見了怎麼辦 搜狗瀏覽器右上角顯示的擴充功能不見了怎麼辦 Jan 31, 2024 pm 02:54 PM

搜狗瀏覽器右上角顯示的擴充功能不見了怎麼辦?搜狗瀏覽器地擴充欄不見了,要怎麼顯示出來。搜狗瀏覽器右上角有個擴充欄,裡面顯示了使用者下載安裝過的各種擴充插件,但是因為我們的一些操作,導只擴充欄的失踪,該怎麼辦呢。我們要怎麼操作它才會顯示出來!小編下面整理了搜狗瀏覽器右上角顯示的擴充功能不見了怎麼辦的解決辦法,不會的話,跟著我往下看吧!搜狗瀏覽器右上角顯示的擴充功能不見了怎麼辦1、先開啟搜狗瀏覽器,在瀏覽器右上方可以看到一個由三條橫線組成的「顯示選單」圖標,使用滑鼠點擊該圖示。 2.點擊之後下方會彈出一個選單窗口

Python運算子:從菜鳥到大師的終極指南 Python運算子:從菜鳥到大師的終極指南 Mar 11, 2024 am 09:13 AM

python運算子簡介運算子是特殊符號或關鍵字,用於執行兩種或多種運算元之間的運算。 Python提供了多種運算符,涵蓋廣泛的用途,從基本的數學運算到複雜的資料操作。數學運算子數學運算子用於執行常見的數學運算。它們包括:運算子運算元範例+加法a+b-減法a-b*乘法a*b/除法a/b%模運算(取餘數)a%b**冪運算a**b//整除(丟棄餘數) a//b邏輯運算子邏輯運算子用於將布林值連接起來並對條件進行求值。它們包括:運算子操作範例and邏輯與aandbor邏輯或aorbnot邏輯非nota比較運算

PHP 函數傳回值的型別與 PHP 擴充的互通性有什麼關係? PHP 函數傳回值的型別與 PHP 擴充的互通性有什麼關係? Apr 15, 2024 pm 09:06 PM

PHP函數傳回值型別可表示為型別說明語法,明確指定了各函數的回傳值型別。了解傳回值類型對於建立與PHP核心引擎相容的擴充功能至關重要,可避免意外轉換、提高效率和增強程式碼可讀性。具體而言,擴充函數可定義傳回值類型,以便PHP引擎根據該類型最佳化程式碼執行,並讓開發者明確處理傳回值。實務中,擴充函數可以傳回PHP對象,而PHP程式碼可以根據傳回值類型處理傳回的結果。

See all articles