作用域不同
- var声明的变量,作用在函数作用域里。如果在函数外声明的变量,为全局变量,作用在全局。

var函数作用域演示

var全局作用域演示

let块作用域演示

const块作用域演示
const声明的值不可修改
- var、let定义的是变量。因为变量指向的内存地址可以改变,所以变量值是可以修改的。
- const定义的是常量。因为常量指向的内存地址不可以改变,所以不可以修改常量值。

const重新赋值演示
变量提升
var可以先使用,后声明,因为var可以提升变量。let、const不可以变量提升,必须先声明,后使用。

var变量提升演示

let后声明变量演示
let、const是es6新增的关键字
注意:window内置name变量,尽量不要声明全局变量name。

全局变量name演示