在JavaScript中,var定义变量实际是有作用域的
假设在函数体内声明,则在函数体外不可以使用(***硬要实现可以研究闭包)
但是如果两个函数使用了相同的变量名,只要在函数内部,就不冲突
内部函数可以访问到外部函数的成员,反之则不行
假设在JavaScript中函数查找变量从自身函数开始,由”内”到”外”查找,假设外部存在这个同名的函数变量,则内部函数会屏蔽外部函数的变量
规范:所有的变量定义都放在函数的头部,不要乱放,便于代码维护
全局函数
全局对象Window:默认所有的全局变量,都会自动绑定到window对象中
alert()这个函数本身也是一个Window变量
把自己的代码全部放入到自己定义的唯一命名空间中,降低全局命名冲突
局部作用域let
let 关键字,解决局部作用域冲突问题