var let const区别

目录

  • 一、是否存在变量提升?
  • 二、能否重复声明?
  • 三、变量值能否修改?
  • 四、是否存在块级作用域?
  • 五、是否存在暂时性死区?


一、是否存在变量提升?

变量提升:变量可以在申明之前使用。

var声明的变量存在变量提升,全局作用域下是 window 属性

在这里插入图片描述
letconst 声明的变量没有变量提升。

var let const区别_第1张图片

二、能否重复声明?

var 能重复声明。

在这里插入图片描述
letconst 不能重复声明。

在这里插入图片描述

三、变量值能否修改?

varlet 声明的值可以修改。

var let const区别_第2张图片

const 声明的值是常量,不能修改。如果申明的是引用类型,可以修改其属性。

var let const区别_第3张图片

四、是否存在块级作用域?

块级作用域:申明的变量只在该块级作用域内有效。

var 没有块级作用域

var let const区别_第4张图片

letconst 有块级作用域

var let const区别_第5张图片

五、是否存在暂时性死区?

暂时性死区:只要块级作用域有 let或者 const 命令,他们所申明的变量就绑定这个区域,不受外部影响。

var 不存在暂时性死区

var let const区别_第6张图片

letconst存在暂时性死区

var let const区别_第7张图片

你可能感兴趣的:(var let const区别)