一、作用域
1.作用域:
ES5:全局作用域、函数作用域;
2.全局作用域:
直接定义在script标签下的域(范围),叫作全局作用域;
3.全局变量:
1.var abc;
2.function fn(){}
4.局部作用域:
任意一个function(){}都会开启一个局部作用域;
5.注意:
1.本作用域里面没有声明对应的变量,那么找父级要。一层一层往外找!
2.函数的作用域,在哪里定义,就是在哪里产生作用域。
3.在不同作用域声明的变量,不会相互影响;
6.变量泄露:
如果说没有先定义的变量,直接赋值,变量会挂载到全局作用域里。到造成全局作用域的污染;
二、函数解析顺序
1.声明/定义:
var a;
2.执行:( for循环、绑定事件、操作标签、对象添加/删除)
a = 1(赋值);
3.变量的提升:
声明的阶段,都会进行一个变量的提升。function声明的变量,优先权会比var 声明的变量优先级高;