ES6中對於函數參數主要增加了以下內容:
1.參數的擴展/數組的展開;
2.默認參數。
什么是參數的擴展?
看下面代碼:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>函數參數的擴展</title> <script> function show(a,b,...args) { console.log(a) console.log(b) console.log(args) } show(2,3,5,6,88,44) </script> </head> <body> </body> </html>
我們可以看出返回結果如下:
我們可以看到沒定義的參數全部都放到了args里面去了,這就是函數參數的擴展。需要注意的是,...args只能放在最后一個。這里的args可以隨便命名,你叫...c,...d都可以的。
什么是數組的展開?
看下面代碼:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>函數參數的展開</title> <script> let arr1 = [1,2,3] let arr2 = [4,5,6] let arr = [...arr1,...arr2] console.log(arr); </script> </head> <body> </body> </html>
返回結果如下圖:
它的展開效果就相當於直接把數組的內容寫在一塊。
默認參數如何用?
函數里面默認參數很常見。ES6中如何設置默認參數呢?看下面代碼:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>默認參數</title> <script> function draw(a,b=100,c=12) { console.log(a,b,c) } draw(200); draw(300,33,55); </script> </head> <body> </body> </html>
返回結果如下:
得出結論了嗎?ES6中默認參數直接在函數參數里面賦值就可以啦~~