Skip to content

const,let,var #6

Open
Open

Description

@aicekiller

都是用来声明变量。

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); //lisi

var声明的全局变量是全局对象的属性,let和const声明的全局变量不属于全局对象的属性。

var value = 1;
console.log(window.value); // 1

let value = 1;
console.log(window.value); // undefined

默认使用const,只有当确实需要改变变量的值的时候才使用let。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions