let、var、const的使用
1.var
- var声明的变量会被提升到该作用域的顶部,若声明在函数内部,则他作用域在整个函数内部,即使他在函数末尾声明,在函数第一行也可以使用。声明在全局也是一样的。
- var不能声明常量,因为var可以修改,而常量不能修改。
- var是
函数作用域
,在整个函数体内有效。 - 允许重复声明,不过可能会出错
- 如以下例子,虽然x是在之后声明,但是在他前面也可以访问它,不过没有值,在他之后访问才会有值。
console.log(x);
var x = 5;
console.log(x);
2.let
- 是
块级作用域
,声明的变量只在块级内部有效(如循环或条件语句内部,呐,之前的var,即使是在循环或者条件语句内部声明,他在整个函数体内也都是可以使用的) - 声明的变量可以被重新赋值
- 声明的变量不会被提升到顶部,只能在该行之后作用,又跟之前的var不一样了哈,var是会提升的!
- 不允许重复声明
console.log(y);
let y = 10;
console.log(y);
3.const
- const声明的是常量,赋值就不可再修改
- 是
块级作用域
- 不可重复声明
- 在声明时就必须初始化,否则会引发语法错误。