标签:情况下 表达式 返回 一个 不能 表达 情况 左右 使用
---------函数
1. 重用
2. 维护
3. 参数
4. 返回值
--------创建函数
? 1.声明式(可以先调用)
? function foo(){};
? 2. 表达式(不能先调用再创建)
? let foo = function(){};
? 3. 构造函数
? let foo = new Function(){};
? 4. 函数调用
? function foo(){}
? foo();
声明式可以先调用后声明(存在函数提升)
--------匿名函数: function(){} 没有名字的函数,通常作为callback;
? 5. IIFE :立即执行函数;
(function (){
console.log(666);
})();
? 6. 参数:形参(形式参数),实参(实际参数);
function foo(a,b,c){ console.log(a + b);//3 console.log(c);//undefined } foo(1,2)
7. 函数的返回值,return 让函数调用完后,重新拿个变量保存,在函数外还可以使用内部的结果,
8. 使用return之后,其后面的语句不会再执行。
9. return每次只能返回1个值。
-------函数3要素:功能,参数,返回值
--------argument 伪数组对象保存实参
---------默认参数
---------不定参数 || 剩余参数 reset 参数,接收多余的没有形参接收的实参,是数组,可以使用数组的方法
? 不定参数只能写在形参的最后
? "..." 符号有两个作用,在数组里是展开运算符,拆散数组;在形参里是剩余参数
`function foo(a){
console.log(a); //1
console.log(arguments[0]);//1
console.log(arguments[1]);//undefined
console.log(arguments[2]);//undefined
}
foo(1);
function foo1(x,y = "hehe",z = "666"){//在没有实参的情况下才使用默认参数
console.log(x,y,z);
}
foo1("a");
function foo2(x,...rest){//rest以数组的形式保存
console.log(x,rest);
}
foo2("a","b","c","d","123");//a [ ‘b‘, ‘c‘, ‘d‘, ‘123‘ ] -------解构 保持 = 左右两边相同的数据类型,把复杂数据类型里的值拆分
let arr = [1,2];
let [a,b] // a,b => 1,2
console.log(a,b);//1,2
function fn([a,b]){
console.log(a,b);//[1,2]
}
console.log([1,2]);
function fn1(){
let a = 1,b = 2;
return [a,b];
}
// let result = fn1()
// console.log(result);//[1,2]
let [x,y] = fn1();
console.log(x,y);//1,2
// if(!max){
// [min,max] = [0,min];
// }`
---------箭头函数:
? let foo = () => {}
如果函数体内只有一个ruturn语句, return关键字省略,{}省略。
如果有且一个形参,()省略
没有自己的this。
标签:情况下 表达式 返回 一个 不能 表达 情况 左右 使用
原文地址:https://www.cnblogs.com/wp45945/p/14192592.html