变量作用域要点
- 在JavaScript中没有块级作用域,只有函数作用域
- 在函数体内,局部变量的优先级高于同名的全局变量
- 在全局作用域编写代码时可以不写var语句,但声明局部变量时必须使用var语句
- 函数作用域是指在函数内声明的所有变量在函数体内始终是可见的,变量在声明之前已经可用JavaScript的这个特性被非正式的称为*声明提前*
- 函数内的变量声明提前至函数体顶部,同时变量初始化留在原来的位置
- 但声明一个JavaScript全局变量时,实际上是定义了全局对象的一个属性,
- 当给一个未声明的变量赋值时JavaScript自动创建一个全局变量,以这种方式创建的变量是全局对象的正常的可配置属性
- 当使用var声明一个变量时,创建的这个属性是不可配置的