# 一、复习
1、循环的意义
- 减少代码冗余,减少文件体积
2、循环的三要素
- 计数器,执行条件计数器的改变,
3、死循环
- 无法通过自身结束循环
4、循环语句
5、循环的应用
- 需要重复执行某些代码的场景
# 三、函数
1、概念:实现了某个功能的一段代码的打包,可以通过程序进行控制:由一堆代码组成,实现了某个功能,可以直接被调用或者事件控制的代码段
- 内置功能
- 非内置功能
2、函数的特点:
- 忽略细节
- 重复使用
- 选择使用
3、创建函数 - 创建打包的容器
- 声明式:
- 声明函数的关键字function
- function 函数名(参数列表){组成功能的代码,函数的执行语句}
- 赋值式:
- 利用变量进行赋值
- var 变量名 = function(){}
4、函数的执行 - 使用这个容器内的功能
- 直接执行
- 名字()
- 注意:任何情况下,只要 名字() 都会作为函数执行
- 事件执行(控制):`事件源,on事件名 = 函数名`
- btn.onclick = printTable
5、根据写法,函数的分类
- 有名函数:function fn(){}
- 正常函数,能直接使用
- 无名函数:function (){}
- 非正常函数,不能直接使用,只能作为*值*使用
1、作为赋值式创建函数
var abc = function(){}
2、作为事件处理函数
btn.onclick = function(){}
3、作为另一个函数的实参
fn(function(){})
4、作为另一个函数的返回值
function fun(){ return function(){}}
5、作为匿名函数的主体
(function(){})()
- 匿名函数:(function(){})()
- 立即执行
- 利用匿名函数生成独立的作用域
- 匿名函数前后要加分号;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- 箭头函数:。。。
6、事件
- 事件:行为、动作、交互的体现,需要通过某些动作(行为)触发,触发之后,执行对应的功能的过程
- 事件分类
- 鼠标类
- 左键单击:click
- 右键单击:contentmenu
- 左键双击:dblclick
- 按下:mousedown
- 抬起:mouseup
- 移动:mousemove
- 进入:mouseover/mouseenter
- 出来:mouseout / mouseleave
- 键盘类
- 点击:keypress
- 按下:keydown
- 抬起:keyup
- 表单类
- 获取焦点:focus
- 失去焦点:blur
- 输入:input
- 内容改变: change
- 提交:submit
- 重置:reset
- 浏览器
- 加载完成:load
- 滚动:scroll
- 改变尺寸:resize
- 主题:测试事件的执行
- 确定事件源
- 找准事件源
- 行为要对应
7、函数的参数 - 入口
- 参数:在函数执行时,可以动态的像函数内部传输数据,函数内根据传入数据的不同,选择执行不同的功能
- 分类
- 函数执行时,发送的参数:实参
- 函数定义时,接收的参数:形参
- 实参发送给形参,形参保存了实参,实参赋值给了形参,类似于变量的赋值
- 参数类型:任意类型
- 参数的个数:任意个
- 数量一致:从左到右一一对应
- 形参多:多出来的形参为undefined
- 实参多:多出来的实参,没有形参接收,可以找arguments
8、arguments
<!-- - 当函数的实参比形参多时,形参并没有很好的接收实参,函数内部默认的对象(arguments),专门用来接收所有的实参 -->
- 函数内部内置的数组对象,用来接收当前所有函数的实参!和形参没有关系
- arguments是一个数组
- argyments.length:数组的长度,实参的个数
- 解析arguments每一个数据:配合索引的概念:0~len-1
- arguments[n]
9、参数应用
- 定义功能时,提前将可能变化的数据,处理成形参
- 将来执行该功能时,将数据通过形参传如入函数,执行对应的功能
- 当函数的参数个数确定时,使用具体的形参接收即可
- 当函数参数个数不确定时,可以使用arguments获取所有的实参
10、函数的出口 - 出口
- 关键字:return 要返回的数据或变量
- return将函数执行结果,返回到执行语句上
- 如果一个函数没有return,那么它返回的数值是undefined
- 返回值的类型:任意类型
- 返回值的个数: 一个函数只能有一个返回值
- return的功能
- 可以让函数有返回值
- 立即结束函数
- 返回值的应用场景
- 功能函数:可以不需要返回值
- 数据函数:必须要有返回值