JS运行和编译
语法分析
查找基本语法有没有错误
预解析
执行之前进行预解析
var、function关键字提前到当前作用域的顶部,变量默认值为undefined,函数默认值为函数体代码块,当函数与变量重名时,保留函数。
变量生命周期
全局变量的生命周期直至浏览器卸载页面才会结束。
局部变量只在函数的执行过程中存在,而在这个过程中会为局部变量在栈或堆上分配相应的空间,以存储它们的值,然后再函数中使用这些变量,直至函数结束
事件
用户的行为:onclick、ondblclick、onfocus、onblur、window.onload
是用户跟页面的交互,当用户跟页面进行一些“交流”的时候,页面通过js就会触发一些事件,比如鼠标点击的时候就会触发onclick事件,给这个事件绑定一个函数,那么这个时候函数就会被调用,代码就会被执行
事件类型:
鼠标事件:click,dbclick,mousedown,mouseup,mouseover,mouseout,mouseenter、 mouseleave、mousemove
鼠标滚轮:scroll,mousewheel
鼠标右键(上下文菜单:在不同环境下右键菜单不一样):contextmenu
mouseover:鼠标在元素身上移动穿过子元素的时候会被反复触发
mouseenter:只是在进入元素的时候触发
键盘事件:keydown,keyup,keypress
表单事件:对表单元素操作之后会触发的事件
单选框、多选框、下拉菜单 状态改变的时候会触发 onchange 事件
表单提交的时候会触发 onsubmit ,触发在