一、函数嵌套
1.简单嵌套:
-function(){
function (){}
}
2.复杂嵌套:
-例子:

二、作用域
1.局部:
局部变量:定义在函数内部的变量
局部作用域:只能在函数内部起作用
2.全局:
全局变量:不在函数内定义的变量
全局作用域:在页面中任意位置都可以起作用
3.访问规则:
-当访问输出或者运算的时候,先在当前的作用域中查找,如果当前作用域中有的话就直接使用输出
-如果没有,就往上一级查找,直到全局作用域中有这个值
-如果全局中也没有这个变量的时候,就直接报错 a is not defiend
三、赋值规则
1.当一个变量赋值的时候,如果在当前作用域中没有定义这个变量,就会往上一级查找。
2.如果全局没有定义,会自动给这个变量定义
四、递归
1.递归函数的表现:函数在调用自己本身
2.语法:
function fn(){
fin()
}
fu()
2.注意:
-递归是一个比较复杂且特殊的函数
-设置的变量或函数,在使用过后就会立马销毁
-递归必须在完全运行解析完成后才能自动的销毁
-递归非常的消耗了浏览器的性能,并且工作项目也很少用
-面试问的非常多,但不用深究
五、事件
1.用户在页面中的行为
2.绑定事件来触发行为:如何绑定dom、标签的id名(只能是id才有用,class不行)
3.使用:标签的id名字.事件
4.事件的书写方式:
-第一种方式将函数的值赋值给事件:
例:鼠标单击事件:
btn.onclick = function(){
alert()
}
-第二种方式将调用的函数赋值给事件(调用的函数后不用接小括号)
例:鼠标单击事件:
function fn(){
alert()
}
btn.onclick = fn
5.事件名:
-鼠标类事件:btn.事件方式
-onclick:单击事件
-dblclick:双击事件
-contextmenu :右击
-mouseover:移上去
-mouseout:移出来
-mousedown:按下
-mouseup:松开/抬起
- 键盘类事件(面对的是浏览器,必须在浏览器上敲键盘):window.事件方式
-keydown:键盘按下去
-keyup:键盘抬起
-keypress:键盘敲击
-表单类事件:text.时间方式
-获取焦点:onfocus
-失去焦点:onblur
-改变内容:onchange