定义的区别:
var 和 let一般用来定义变量,而const用来定义常量
初始值的区别
var 和 let可以不用给初始值(不给值的情况下默认是undefined),而const定义的是常量,后续的值是不变的,所以使用时必须给定值
作用域的区别:
-
var定义的变量,没有块的概念,可以跨块访问, 不能跨函数访问。
-
let定义的变量,只能在块作用域( 块作用域即 { })里访问,不能跨块访问,也不能跨函数访问。
-
const只能在块作用域里访问,而且不能修改。这里有一个要注意的地方:
const定义的常量是不能被赋值操作的,而在下面这种情况下,const定义了一个对象,属性却可以被修改:
const obj = { name: 'a', age: 18 };
obj.name = 'b'; // 这里是可以改变obj属性的
console.log(obj);
const obj = { name: 'a', age: 18 };
obj = {}; // 直接赋值操作会报错,无法被指派给obj,因为它是常量