声明式函数 (告诉浏览器,这是一个被定义了的函数)
var 关键字 (告诉浏览器,这是一个被定义的变量,但是不会解析到赋值)
PS:当预解析时,函数名和变量名重复时,会以函数为重
预解析的无理处:(不理判断条件,变量都会被解析??)
if条件内不管是否满足条件都会进行解析
return 后面也会进行解析
一个页面打开就是一个全局作用域
私有作用域/函数作用域
只有函数会生成私有作用域
定义在哪个作用域就只能在那个作用域以及子级的作用域进行使用。
当在一个作用域里对一变量进行赋值时,如果在本作用域里找不到,就会往上级找,如果到全局作用域也没有,会自动定义这个变量为全局变量
访问规则
当需要使用一个变量时,先在本作用域进行寻找,没有就会往上级找,如果全局作用域也没有,会报错**xxx is not defined**
原文:https://www.cnblogs.com/33I77/p/12498539.html