-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Labels
Description
都是用来声明变量。
let和const
- 不存在变量提升
变量一定要在声明后使用。 - 暂时性死区
如果区块中存在let和const命令,则这个区块对这些命令声明的变量从一开始就形成封闭作用域。在声明之前,这些变量都是不可用的。 - 不允许重复声明
const 定义的是不可重新赋值的值,与不可变的值(Immutable value)不同;如果const定义的是引用数据类型的常量,在定义之后仍可以修改其属性,如果是基础数据类型的常量则不能更改;const一旦声明常量,就必须立即初始化。
const a = 1;
a = 2;
console.log(a); // Assignment to constant variable
const obj = {name: "zhangsan"}
obj.name = "lisi";
console.log(obj.name); //lisivar声明的全局变量是全局对象的属性,let和const声明的全局变量不属于全局对象的属性。
var value = 1;
console.log(window.value); // 1
let value = 1;
console.log(window.value); // undefined默认使用const,只有当确实需要改变变量的值的时候才使用let。
Reactions are currently unavailable