1. JS运行和编译
1.1 语法分析 :查找基本语法有没有错误
1.2 预解析:执行之前进行预解析
var、function关键字提前到当前作用域的顶部,变量默认值为undefined,函数默认值为 函数体代码块,当函数与变量重名时,保留函数。
1.3 解释执行
2. 变量生命周期
2.1 全局变量的生命周期直至浏览器卸载页面才会结束。
2.2 局部变量只在函数的执行过程中存在,而在这个过程中会为局部变量在栈或堆上分配相应的空间,以存储它们的值,然后再函数中使用这些变量,直至函数结束
3.事件
3.1 事件类型:
3.1.1 鼠标事件:click,dbclick,mousedown,mouseup,mouseover,mouseout,mouseenter、mouseleave、mousemove
scroll mousewheel 鼠标滚轮
contextmenu 鼠标右键(上下文菜单:在不同环境下右键菜单不一样)
mouseover:鼠标在元素身上移动穿过子元素的时候会被反复触发
mouseenter:只是在进入元素的时候触发
3.1.2 键盘事件:keydown(按下不放手),keyup(已按下松手),keypress(按下加松手)
3.1.3 表单事件:对表单元素操作之后会触发的事件
单选框、多选框、下拉菜单 状态改变的时候会触发 onchange 事件
表单提交的时候会触发 onsubmit触发在<form>元素身上
onfocus 获取焦点时的事件
onblur 失去焦点时的事件