1.会把所有函数声明提升到当前作用域的最前面
2.只提升函数声明,不提升函数调用
- fn();
- function fn(){
- console.log("函数提升");
- }
- fun();//报错
- var fun=function() {
- console.log("函数表达式");
-
- }
函数表达式必须先声明和赋值 后调用 否则报错
总结:
1.函数提升能够使函数的声明调用更灵活
2.函数表达式不存在提升的现象
3.函数提升出现在相同作用域当中
1.arguments 动态参数 只存在函数里面 是伪数组
- let sum = 0;
- for (let i = 0; i < arguments.length; i++) {
- sum += arguments[i];
- }
- return sum;
- }
- let s = getSum(1, 2, 3);
- console.log(s);
2. 剩余参数
剩余参数允许我们将一个不定数量的参数表示为一个数组
1....是语法符号。置于最末函数形参之前,用于获取多余的实参
2.借助...获取的剩余实参,是个真数组
开发中,还是提倡多使用剩余参数。
- function getSum(...arr) {
- // console.log(arr);//使用时不需要写...
- let sum = 0;
- for (let i = 0; i < arr.length; i++) {
- sum += arr[i]
- }
- console.log(sum);
- }
- getSum(1, 2);
- getSum(1, 2, 3);
展开运算符(...)将一个数组进行展开
- const arr=[1,5,3,8,2];
- // 展开运算符 可以展开数组
- console.log(...arr);//1 5 3 8 2
典型运用场景:求数组最大值(最小值)、合并数组等
-
- const arr=[1,5,3,8,2];
-
- // 1.求数组最大值
- console.log(Math.max(...arr));//8
- console.log(Math.min(...arr));//1
- const arr=[1,5,3,8,2];
- // 2.合并数组
- const arr2=[4.5,7];
- const arr1=[...arr,...arr2];
- console.log(arr1);//[1,5,3,8,2,4,5,7]
注意:
剩余参数:函数参数使用,得到真数组
展开运算符:数组中使用,数组展开