1.var
var声明的范围是函数作用域
使用此关键字声明的变量会自动提升到函数作用域顶部(即不会报变量未定义错误),例如:
<script>
console.log(a);
var a = 10;
</script>
2.let
let声明的范围是块作用域
使用此关键字声明的变量不会自动提升到块作用域顶部(即如果使用前未定义,会报错),例如:
<script>
console.log(a);
let a = 10;
</script>
3.const
const声明与let基本相同,但是在声明变量的时候必须初始化变量,并且不可修改,例如:
const a=10;
a=20;
特别注意:当const声明的是一个对象时,修改对象内部的属性是可以的
区别
1、let在全局作用域中声明的变量不会编程window对象的属性,var声明的会,例如:
<script>
let a=10;
var b=10;
console.log(window.a);
console.log(window.b);
</script>
2、let不可以在同一个作用域内声明相同名称的变量,var可以
声明风格推荐
不使用var,在变量不需要修改时const优先,let次之,只有需要修改变量的时候,使用let



京公网安备 11010502036488号