函数

函数概述

函数 实际就是多行代码的抽取(多行代码会构成特定的功能)(方法)

函数的优点

减少冗余代码(重复的代码放在函数里面 在需要的时候调用)函数封装(特定的一些代码使用函数来包起来),提高了代码的可维护性及可阅读性

函数的分类

  • 系统函数 window里面的所有函数都属于系统函数 (console.log() alert() prompt()...)
  • 内置函数 所有的内置对象里面的函数 都叫内置函数 (Math.pow())
  • 自定义函数( 自己定义的函数)

自定义函数的定义以及调用

1.使用function关键词 定义匿名函数(没有名字的函数)

2.使用function关键词 定义具名函数 (有名字的函数)

3.使用new Function方式

在程序执行之前有个预编译过程

预编译会做的事情

1.他会声明对应的function和var关键词修饰的变量(开辟内存的操作)
2.对应的function的内存空间开辟以后他会将对应的代码块放到其中 等待调用
3.var 修饰的关键词 只会开辟一个空间 并不会进行赋值(默认给他的一个undefined的值)

return关键词

return 返回对应的数据的 他是在函数内容进行数据返回的(当你调用了return操作后 后面的内容将不再执行)
如果没有return关键词 返回的一个undefined的值

函数执行过程

1.把对应的开辟的function内存里面的代码块丢给方法栈(执行栈)去执行
2.执行栈就会自动取执行对应的方法 执行完返回对应的结果
3.当前结果返回完毕以后 对应的执行栈里面的内存空间要进行回收(GC)将这个内存空间销毁

函数作用域

作用域

当前一个变量的作用范围 分为局部作用域(在一个函数内声明的 或者是在一段代码块内声明的 他的作用范围就是当前的代码块)和全局作用域(在对应的全局声明的 他的作用范围就是全局的)

作用域链


当前的作用域内没有找到对应的变量就会向上去寻找 而这个过程构成的链式结构称为作用域链

函数的arguments(参数数组 参数的集合)

arguments是一个伪数组(有部分的数组特性)(可以通过length属性对应的长度 [] 下标来访问里面的元素)

所有的函数都具备arguments (对象)

访问

  • length属性访问长度
  • [] 加下标(从0开始)访问里面的元素

函数的嵌套

  • 函数的嵌套: 函数内部可以再包含其他函数;
  • 函数之间允许相互调用,也允许向外调用, 但是不可以调用同级函数的嵌套函数;

注意事项

函数的抽取 (抽取冗余的代码)

  • 参数 (可变的内容)
  • 返回值 (我们想从这个函数得到什么)

Dom的简单操作

1.获取对应的标签 (通过id获取)

2.input框的值获取 value属性

3.点击事件 onclick

递归算法

递归可以完成所有循环做的事情 (但是递归的效率较低)


递归三要素

  • 找规律
  • 找临界值(没有规律的值)return
  • 自己调自己(在函数内部调用自己的函数)

 

posted @ 2022-07-28 19:26  学呆学Dai了就摆烂  阅读(54)  评论(0)    收藏  举报