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中默認參數直接在函數參數里面賦值就可以啦~~
