1.创建函数
1-1 以直接量的方式创建
function go(){console.log("hello world")}tips:在函数前后调用都可以
1-2 以变量的方式创建
var go = function(a){console.log(a)}tips
2.函数返回值
函数return之后,return后面的语句就不会执行了
# 什么是函数的返回值定义:函数的执行结果函数可以没有returntips:1.函数会在执行完return语句之后停止,并立即退出2.return语句也可以不带任何返回值,用于提前停止函数执行//return的作用:把结果返回到函数外部function show(){return "hello world"}var b = show(); // 在哪调用返回到哪里;
作用:将函数内部的值返回外部
function go(){return "hello world";console.log("good"); // 不会执行}console.log(go()); // hello world
3.函数的参数(局部变量)
可变参(不定参)arguments参数的个数可变,参数数组//对传入的参数求和function total(){let result = 0;for(let i=0;i<arguments.length;i++){result+=arguments[i];}return result;}var a = total(2,3,3);
<script>function go(a,b){console.log(a);console.log(b);} //--tips:js传不定参go();go(10);go(10,20)</script>

3-1 重载
重载:就是函数名相同根据参数的不同,动态决定调用哪个方法
js中没有重载的概念,因为重复声明,下面的会覆盖上面的
<script>// var a = 10;// var a = 20;// console.log(a);function go(a,b){console.log(a);console.log(a+b);}go(10);</script>
使用arguments对象模拟重载
<script>function go(){if(arguments.length ==1){console.log(arguments[0])}else if(arguments.length==2){console.log(arguments[0]);console.log(arguments[0]+arguments[1])}}go(2)go(20,5)</script>
4 函数作为对象的方法
<script>var obj ={name:"html",sayName:function(){console.log(this.name)}}// 函数是对象的一个方法obj.sayName();// this关键字指向问题// 1.onclick 谁执行,this指向谁// 2.谁执行方法,this指向谁</script>
5 回调函数
使用场景:异步问题
<script>var show=function (a){console.log(a);}function go(callback){var b =10;callback(b)}go(show);//show 传递给callback,定义b=10后调用show()函数,将b传给啊,输出b=10</script>
<script>function go(callback){var b=20;callback(b);}go(function(a){console.log(a);})</script>
5-1 箭头函数
<script>// var show = function(a){// console.log(a);// }var go=(a)=>{ ----特点:省略了functionconsole.log(a)}go(30)</script>
如果参数只有一个可以省略小括号,执行语句只有一句可以省略大括号var show = a=>console.log(a);show(10);
如果输出语句只有一段return语句,可以省略return语句<script >// var go=(a)=>{// return a;// }var show= a=>a;console.log(show(10))</script>
