我是靠谱客的博主 飘逸酸奶,最近开发中收集的这篇文章主要介绍const 常量_var,let,const 的区别?,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

为了更好的了解var let const 的区别,我们就来简单的了解它们的过程

相信有很多人都会面临面试官问的这个问题

很多的同学都是简单的认为 var声明的变量会提升,而let const 不会,虽然可以这样认为,但不完全对,

经过几经波折,得出一个自己看得懂的结论

这次,我们就来看看它们三者的区别以及过程让我们可以更好的了解它们

在JS引擎解析代码的时候,遇到变量经历不同的声明方式的过程是不同的

1.通过var声明的变量过程

consloe

​过程如下:

​ 1.var声明的变量会提升到最顶部,创建出a变量

​ 2.创建完a变量后会初始化为undefined

​ 3.开始执行代码

​ 4.将变量值赋值给a变量

为什么在var声明变量之前输出这个变量为undefined的原因就一目了然了

2.通过let声明变量的过程

let 

1.输出结果:无法在初始化之前访问 ' a ' 。

2.输出结果:标识符“a”已经声明

经过错误1.的提示,那么问题来了,let是会提升吗?

​ 过程如下:

​ 1.let声明的变量在创建过程中被提升

​ 2.开始执行代码,但未初始化 Temporary dead zone(也就是所谓的暂时性死区)

​ 3.初始化代码

​ 4.在修改变量值的前提下,进行赋值

这就是为什么输出的结果为:无法在初始化之前访问 ' a '

错误2.使用let声明变量无法声明重复变量,所以抛出错误

有些同学看到暂时性死区会很懵逼的说,那是啥玩意儿?如然后各种度娘,其实你可以简单的认为:在变量初始化之前,是无法使用这个变量的

3.通过const声明的常量

const 

输出的结果为:重新赋值了常量。也就是是你重新修改了const声明的常量的值

const 和 let只有一个区别,那就是 const 声明常量的过程只有两步:

创建和初始化,但没有赋值过程

因为没有赋值过程,所以无法给const声明的常量进行重新赋值,这就是为什么重新给常量赋值后会抛出错误的原因

const声明的常量是什么?常量,顾名思义就是常用的变量,在判断逻辑的情况下,我们有时候需要一个固定值来作为判断条件,那么我们就会优先使用const进行声明常量,而const声明的常量移除了这个量的修改功能,也就是说 const声明的量只无法修改其值,故称为常量。

4.const 和 let 具有块级作用域

{
   

由此可见,const 和 let 声明的常量/变量只限于当前作用域,在外部作用域是无法访问到的,那么另一个问题就来了,它们两者声明的常量/变量是否属于window呢?

let 

是否看完结果后,又发现了一项它们之间的区别,在全局作用域中使用var或者不使用var声明的变量都是属于window的,而let和const不是

最后

以上就是飘逸酸奶为你收集整理的const 常量_var,let,const 的区别?的全部内容,希望文章能够帮你解决const 常量_var,let,const 的区别?所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(55)

评论列表共有 0 条评论

立即
投稿
返回
顶部