var:
属于window对象
定义的变量可以重新定义,可以改值
定义的变量不具有块级作用域
可以只定义不赋值
let :
不属于Window
定义的变量不能重新定义,可改值
定义的变量具有块级作用域的说法
可以只定义不赋值
const:
不属于Window
定义的变量不能重新定义
定义的变量具有块级作用域的说法
定义的变量必须赋值(必须初始化)
定义的变量,不能改值
建议:固定不变的常量,定义时可以使用const (常量:如PI)
值变化的使用 let
var 声明: 函数作用域
可以先使用 再声明 (不合理)
var 声明过的变量可以重复声明(不合理)
比如变量提升、全局变量、没有块级作用域等
let 声明:块作用域
不能重复声明
必须先声明,再使用
// var 可以先使用,再声明,不合理
age = 20
var age
console.log(age);
// var 可以多次声明同一个变量名 不合理 let 不行
var height = 170
var height = 200
console.log(height);