广告联盟网站怎么做,投简历找工作哪个网站好,培训seo去哪家机构最好,专业网站建设设计为了更好的了解var let const 的区别#xff0c;我们就来简单的了解它们的过程相信有很多人都会面临面试官问的这个问题 很多的同学都是简单的认为 var声明的变量会提升#xff0c;而let const 不会#xff0c;虽然可以这样认为#xff0c;但不完全对#xff0c;经过几经波…为了更好的了解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不是