let,const,var区别

简介: let,const,var区别

let和var区别:

在较旧的js,使用关键字var来声明变量,而不是let

var现在开发一般不再使用它,只是我们可能再老版程序中看到它

let为le解决var的一些问题:

var声明:

可以先使用在声明(不合理)

var声明过的变量可以重复声明(不合理)

比如变量提升,全局变量,没有块级作用域等等

区别:

  • var 声明的范围是函数作用域,let 和 const 声明的范围是块作用域
  • var 声明的变量会被提升到函数作用域的顶部,let 和 const 声明的变量不存在提升,且具有暂时性死区特征
  • var 允许在同一个作用域中重复声明同一个变量,let 和 const 不允许
  • 在全局作用域中使用 var 声明的变量会成为 window 对象的属性,let 和 const 声明的变量则不会
  • const 的行为与 let 基本相同,唯一 一个重要的区别是,使用 const 声明的变量必须进行初始化,且不能被修改

作用域:

var没有块级作用域,而let声明的范围是块作用域; 一对大括号 就是 一个块级作用域

暂时性死区:

  • 只要一进入当前作用域,所要使用的变量就已经存在了,但是不可获取,只有等到声明变量的那一行代码出现,才可以获取和使用该变量
  • 暂时性死区和不能变量提升的意义在于: 为了减少运行时错误,防止在变量声明前就使用这个变量,从而导致意料之外的行为

const优先的原因:

  • const语义化更好
  • 很多变量我们声明的时候就知道他不会被改变了,那为什么不用const呢
  • 实际开发也是,比如react框架,基本const

const声明的值不能更改,而且const声明变量的时候需要里面进行初始化

但是对于引用数据类型,const声明的变量,里面存的不是值,是地址

目录
相关文章
|
2月前
|
移动开发
H5中的var、let和const
H5中的var、let和const
|
3月前
|
JavaScript 前端开发
var、let和const的作用及区别
这篇文章详细解释了JavaScript中`var`、`let`和`const`三种变量声明方式的作用及它们在作用域、可变性、变量提升等方面的区别,并提供了示例代码来阐明各自的特性和适用场景。
|
编译器
说说var、let、const之间的区别?
说说var、let、const之间的区别?
70 0
|
6月前
|
人工智能 前端开发 Cloud Native
说说var、let、const之间的区别
说说var、let、const之间的区别
|
JavaScript 前端开发
var let const的区别
`var`、`let`和`const`是用于声明变量的关键字,在 JavaScript 中具有不同的作用和用法。
|
编译器
var、let、const之间有什么区别?(详细版)
1.在ES5中,顶层对象的属性和全局变量是等价的,用var声明的变量既是全局变量,也是顶层变量
|
JavaScript 前端开发
let和var的区别
let和var的区别
150 0
|
JavaScript 前端开发
var、let、const的区别和推荐使用
var、let、const的区别和推荐使用