全局作用域
使用var关键字声明的全局作用域变量属于window对象,可以再修改。
使用let关键字声明的全局作用域变量不属于window对象,可以再修改。
const关键字定义的常量,声明时必须进行初始化,且初始化后不可
再修改。
使用 const 定义的对象或者数组,其实是可变的。
// 创建常量对象
const car = {type:"Fiat", model:"500", color:"white"};
// 修改属性:
car.color = "red";
// 添加属性
car.owner = "Johnson";
局部作用域
使用var关键字声明的变量在任何地方都可以修改。
在相同的作用域或块级作用域中,不能使用let关键字来重置var关键字声明的变量。
在相同的作用域或块级作用域中,不能使用let关键字来重置let关键字声明的变量。
let关键字在不同作用域,或不用块级作用域中是可以重新声明赋值的。
在相同的作用域或块级作用域中,不能使用const关键字来重置var和let关键字声明的变量。
在相同的作用域或块级作用域中,不能使用const关键字来重置const关键字声明的变量。
const 关键字在不同作用域,或不同块级作用域中是可以重新声明赋值的
变量提升
var关键字定义的变量可以先使用后声明。
let关键字和const关键字定义的变量需要先声明再使用。