搜尋
首頁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
c语言开根号运算符是什么c语言开根号运算符是什么Mar 06, 2023 pm 02:39 PM

在c语言中,没有开根号运算符,开根号使用的是内置函数“sqrt()”,使用语法“sqrt(数值x)”;例如“sqrt(4)”,就是对4进行平方根运算,结果为2。sqrt()是c语言内置的开根号运算函数,其运算结果是函数变量的算术平方根;该函数既不能运算负数值,也不能输出虚数结果。

Java中的%是什么意思Java中的%是什么意思Mar 06, 2023 pm 04:48 PM

在Java中,“%”是取余的意思,是一个二元算术运算符,可进行除法运算并获取余数,语法“操作数1 % 操作数2”。取余运算符“%”的操作数通常是正整数也可以是负数甚至是浮点数,如果负数参与此运算,则结果的正负取决于前面一个数是正数还是负数。

golang 报错:“invalid use of … operator” 如何解决?golang 报错:“invalid use of … operator” 如何解决?Jun 24, 2023 pm 05:54 PM

对于Golang开发者来说,“invaliduseof…operator”是一个常见的报错。这个报错通常会在使用变长参数函数时出现。它在编译时就会被检测出来,并指出哪些部分有问题。这篇文章将介绍如何解决这个报错。一、什么是变长参数函数变长参数函数也被称为可变参数函数,是Golang语言中的一种函数类型。使用变长参数函数可以像如下方式定义多个

php中“==”符号的含义是什么php中“==”符号的含义是什么Mar 14, 2023 pm 07:05 PM

在php中,“==”符号是一个比较运算符,可以比较两个操作数是否相等,语法“操作数1 == 操作数2”。“==”运算符会比较、并测试左边的变量(表达式或常量)是否与右边的变量(表达式或常量)具有相同的值;它只比较变量的值,而不是数据类型。如果两个值相同,则返回true值;如果两个值不相同,则返回false值。

php怎么判断两个数能否整除php怎么判断两个数能否整除Jan 10, 2023 pm 03:12 PM

在php中,可以使用“%”和“==”运算符来判断两个数能否整除;只需要使用“%”运算符将两个数相除获取余数,再使用“==”运算符判断获取的余数是否为0即可,语法“数1 % 数2 == 0”,如果为0则能整除,如果不为0则不能整除。

Python中的魔法方法Python中的魔法方法Apr 13, 2023 am 10:25 AM

python中的魔法方法是一些可以让你对类添加“魔法”的特殊方法,它们经常是两个下划线包围来命名的。Python的魔法方法,也称为dunder(双下划线)方法。大多数的时候,我们将它们用于简单的事情,例如构造函数(init)、字符串表示(str, repr)或算术运算符(add/mul)。其实还有许多你可能没有听说过的但是却很好用的方法,在这篇文章中,我们将整理这些魔法方法!迭代器的大小我们都知道__len__方法,可以用它在容器类上实现len()函数。但是,如果您想获取实现迭代器的类对象的长度

go语言运算符优先级怎么排序go语言运算符优先级怎么排序Dec 21, 2023 pm 05:03 PM

在Go语言中,运算符按照优先级从高到低的顺序进行计算。常见的运算符的优先级顺序:1、括号:()(最高优先级,用于强制改变运算顺序);2、​单目运算符;3、乘性运算符;4、加性运算符;5、移位运算符;6、按位运算符;7、比较运算符;8、逻辑运算符;9、条件运算符(三元运算符);10、赋值运算符等等。

JavaScript的位左移(<<)运算符是什么?JavaScript的位左移(<<)运算符是什么?Sep 13, 2023 pm 12:37 PM

使用按位左移运算符,从右侧移动一个或多个零位。不考虑最左边的位。示例您可以尝试运行以下代码来了解如何使用JavaScript按位左移运算符。<!DOCTYPEhtml><html>&nbsp;&nbsp;<body>&nbsp;&nbsp;&nbsp;<script>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;document.write("B

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前By尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
4 週前By尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
4 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SecLists

SecLists

SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

EditPlus 中文破解版

EditPlus 中文破解版

體積小,語法高亮,不支援程式碼提示功能

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),