1.创建函数

1-1 以直接量的方式创建

  1. function go(){
  2. console.log("hello world")
  3. }
  4. tips:在函数前后调用都可以

1-2 以变量的方式创建

  1. var go = function(a){
  2. console.log(a)
  3. }
  4. tips

2.函数返回值

函数return之后,return后面的语句就不会执行了

  1. # 什么是函数的返回值
  2. 定义:函数的执行结果
  3. 函数可以没有return
  4. tips:
  5. 1.函数会在执行完return语句之后停止,并立即退出
  6. 2.return语句也可以不带任何返回值,用于提前停止函数执行
  7. //return的作用:把结果返回到函数外部
  8. function show(){
  9. return "hello world"
  10. }
  11. var b = show(); // 在哪调用返回到哪里;

作用:将函数内部的值返回外部

  1. function go(){
  2. return "hello world";
  3. console.log("good"); // 不会执行
  4. }
  5. console.log(go()); // hello world

3.函数的参数(局部变量)

  1. 可变参(不定参)arguments
  2. 参数的个数可变,参数数组
  3. //对传入的参数求和
  4. function total(){
  5. let result = 0;
  6. for(let i=0;i<arguments.length;i++){
  7. result+=arguments[i];
  8. }
  9. return result;
  10. }
  11. var a = total(2,3,3);
  1. <script>
  2. function go(a,b){
  3. console.log(a);
  4. console.log(b);
  5. } //--tips:js传不定参
  6. go();
  7. go(10);
  8. go(10,20)
  9. </script>

image.png

3-1 重载

重载:就是函数名相同根据参数的不同,动态决定调用哪个方法
js中没有重载的概念,因为重复声明,下面的会覆盖上面的

  1. <script>
  2. // var a = 10;
  3. // var a = 20;
  4. // console.log(a);
  5. function go(a,b){
  6. console.log(a);
  7. console.log(a+b);
  8. }
  9. go(10);
  10. </script>

使用arguments对象模拟重载

  1. <script>
  2. function go(){
  3. if(arguments.length ==1){
  4. console.log(arguments[0])
  5. }
  6. else if(arguments.length==2){
  7. console.log(arguments[0]);
  8. console.log(arguments[0]+arguments[1])
  9. }
  10. }
  11. go(2)
  12. go(20,5)
  13. </script>

4 函数作为对象的方法

  1. <script>
  2. var obj ={
  3. name:"html",
  4. sayName:function(){
  5. console.log(this.name)
  6. }
  7. }
  8. // 函数是对象的一个方法
  9. obj.sayName();
  10. // this关键字指向问题
  11. // 1.onclick 谁执行,this指向谁
  12. // 2.谁执行方法,this指向谁
  13. </script>

5 回调函数

使用场景:异步问题

  1. <script>
  2. var show=function (a){
  3. console.log(a);
  4. }
  5. function go(callback){
  6. var b =10;
  7. callback(b)
  8. }
  9. go(show);
  10. //show 传递给callback,定义b=10后调用show()函数,将b传给啊,输出b=10
  11. </script>
  1. <script>
  2. function go(callback){
  3. var b=20;
  4. callback(b);
  5. }
  6. go(function(a){
  7. console.log(a);
  8. })
  9. </script>

5-1 箭头函数

  1. <script>
  2. // var show = function(a){
  3. // console.log(a);
  4. // }
  5. var go=(a)=>{ ----特点:省略了function
  6. console.log(a)
  7. }
  8. go(30)
  9. </script>
  1. 如果参数只有一个可以省略小括号,执行语句只有一句可以省略大括号
  2. var show = a=>console.log(a);
  3. show(10);
  1. 如果输出语句只有一段return语句,可以省略return语句
  2. <script >
  3. // var go=(a)=>{
  4. // return a;
  5. // }
  6. var show= a=>a;
  7. console.log(show(10))
  8. </script>