Loading

var、let、const的区别与使用

var

  • var在任意版本都可以使用,const、let只能在ES6及之后使用

  • 使用var操作符定义的变量会成为包含它函数的局部变量,作用域在函数内部

  • 在函数内部定义变量时,忽略var,直接赋值,该变量会成为全局变量

  • 在全局作用域中声明变量,称为全局变量,会成为window对象的属性

  • 在一条语句中需要定义多个变量时,使用逗号分隔变量

  • var声明的变量可以变量提升,就是将变量声明提到其作用域的顶部

let

  • let声明的范围是块作用域{},var声明的范围是函数作用域
  • 块作用域是函数作用域的子集
  • 所以适用于var的作用域限制同样适用于let
  • let不允许同一块内出现冗余声明
  • let声明的变量不能在作用域中被提升,不能在声明之前以任何形式引用该变量,称为暂时性死区
  • 在全局作用域中声明let变量,不会成为window对象的属性

const

  • 声明变量时必须初始化变量
  • 尝试修改const声明的变量会导致运行时错误
  • 不允许重复声明
  • 作用域为块{}
  • const声明的限制只适用于它指向的变量的引用,而不在意引用内部是否发生变化
posted @ 2022-06-23 09:28  苏无及  阅读(105)  评论(0)    收藏  举报