总结:var 声明的变量没有块级作用域,可以重复声明,值可变;let 声明的变量有块级作用域,不可以在声明前使用,值可变;const 声明的是常量,有块级作用域,声明时必须初始化,值不可变。// z = 20;var:可以声明变量,没有块级作用域的概念,可以重复声明变量,其值可以改变。const:用于声明只读的块级作用域变量,声明时必须初始化,其值不可更改。let:用于声明块级作用域变量,不能在声明之前使用变量,其值可以改变。// 重新声明变量x,值改变。// 声明块级作用域变量y。var x = 10;