Skip to content

const,let,var #6

@aicekiller

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声明的全局变量是全局对象的属性,letconst声明的全局变量不属于全局对象的属性。

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

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

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

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions