一、var-声明一个变量。 在定义前使用,返回值是undefined。 变量可以重复声明。 变量可以重新赋值。 二、let-声明一个变量。 变量可以重新赋值,不能重复声明。 let有块级作用域,不仅仅针对花括号,例如if()里面。 不存在变量提前。 不影响作用域链。 二、const-声明一个常量。 一定要赋初始值。一般常量使用大写(潜规则)。有块级作用域。常量的值不能重新赋值和重复声明。对于数组和对象元素修改,不算作对常量的修改。