注:下边的{ }代表的是一个作用域
let 和 const是ES6语法新增,专门用于声明变量
var:
1.var声明的变量可以提前调用 但结果是 undefined
2.var声明的变量 变量名称可以重复(重复的话是重新赋值,后边的变量赋值会覆盖前一个变量的赋值)
3.var 定义在{ }中的变量 可以在{ }外调用
4.循环中 声明的变量 只会生成一个 循环变量
每次循环都是 重复赋值
循环结束只有一个变量 存储 最终数值
let:
1.let声明的变量不能被 预解析/ 预解释 /预编译 提前调用 结果是 报错
2.let声明的变量 变量名称不能重复
3.let定义在{ }中的变量 不能在{ }外调用
4.如果必须要在{ }中 操作变量
在{ }外 定义变量 在{ }中 赋值变量
5.循环中 声明的变量 每次循环 都会生成一个独立作用域的变量
存储 不同的 相互不影响的 数值数据
循环结束 生成 多个 循环变量 存储不同的数值
6.存储 基本数据类型
const:
1.const声明的变量 不能被 预解析 / 预解释 / 预编译 提前调用会报错
2.const声明的变量 变量名称 不能重复
3.const声明的变量 如果在{ }中
变量的作用域 只是在{ }中
{ }外 不能使用调用
4.const声明的变量 存储的数据 不能改变 也就是 不能重复赋值 修改 存储的数据
const一般存储不能改变的常量以及引用数据类型