变量声明和初始化
-
在JavaScript中,新创建的变量默认值都是undefined,需要人为赋值
作用域
- JavaScript有两大作用域- -全局作用域和方法作用域。在方法作用域中声明的变量,在外是不可访问的。例如,使用 var 声明的变量的作用域是方法作用域
图中标红位置为一个方法作用域,在getDate()方法中声明的date,在getAnother()方法中并不能访问到:ReferenceError: date is not defined - var关键字的使用,即在这个方法内部开始声明的变量,在这个方法的任意位置都可以使用,例如,在一个方法的for循环中定义两个变量,在循环外依然可以访问到
var 和 let 区别
- let 是块作用域,即在{}内可用,使用上面相同的方法,如果使用let声明变量,会报错
- 在声明变量之前就访问变量的话,会直接提示ReferenceError,而不像 var 那样使用默认的undefined
let 和 const 区别
- let 与const作用域是一样的,不同的是const变量一旦被赋值,就不能再改变了,但这并不意味着使用const 声明的变量本身不可变,只是说它不可被再次赋值了