千家信息网

JavaScript中var与let的区别是什么

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,本篇文章给大家分享的是有关JavaScript中var与let的区别是什么,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。前言:var是J
千家信息网最后更新 2026年10月31日JavaScript中var与let的区别是什么

本篇文章给大家分享的是有关JavaScript中var与let的区别是什么,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

前言:

var是JavaScript刚出现时就存在的变量声明关键字,而let作为ES6才出现的变量声明关键字,无疑两者之间存在着很大的区别。那么具体有哪些区别呢?

1.作用域表现形式不同

var是函数作用域,let是块级作用域

{  var monkey='熏悟空';  let pig='猪扒盖';    }console.log(monkey); //输出undefinedconsole.log(pig); //报错:pig is not deined

由上面代码可见,let声明的变量只在其所在的代码块有效,在代码块外部无效无法访问,而var声明的变量在该代码块所在的函数作用域内都有效。

2.是否变量提升的区别

var声明的变量会进行变量提升,let声明的变量不会进行变量提升。

console.log(monkey); //undefinedvar monkey='熏悟空';console.log(pig); //报错:pig is not definedlet pig='猪扒盖';

同样的逻辑,为什么var声明的变量在它声明之前调用会显示未定义,而let声明的变量在声明之前调用会抛出异常呢,这就是两者在变量提升上的区别,var声明的变量存在变量提升,let声明的变量不存在变量提升。

那么什么叫变量提升呢,我这里不做概念性的描述,我只说我个人的理解,就是以上代码实际上相当于如下:

var monkey;console.log(monkey); //undefinedmonkey='熏悟空';console.log(pig); //报错:pig is not definedlet pig='猪扒盖';

看见区别了吗,var声明的变量会将声明的变量提取到作用域的最上面进行定义但不赋值,赋值操作还是在你的代码处,所以你在调用var声明的变量时就是一个已经声明但是并未定义值的变量,所以调用结果就是undefined,这就是所谓的变量提升。而let定义的变量不存在这种变量提升。

3.暂时性死区上的区别

暂时性死区:如果在某一作用域内let了一个变量,如果外部作用域中有相同名称的变量,那么就算在作用域内进行了更改,也不会影响到外部作用域

具体表现如下:

for(var i=0;i<5;i++){    setTimeout(function(){        console.log(i)    },1000)}for(let i=0;i<5;i++){  setTimeout(function(){     console.log(i)            },1000)  }

请问这两处代码的运行结果分别是什么?

第一处代码运行完毕的结果是1s后顺序打印5个5;第二处代码运行完毕的结果是1s后顺序打印0,1,2,3,4。

请问为什么会存在这种区别?

因为第一处代码的变量i由var关键字声明,不存在关键性死区,即你在1s后setTimeout中访问到的变量i是全局上下文中for循环运行完毕之后的i,所以打印的结果全是5;

而第二处代码的变量i由let关键字声明,产生了关键性死区,存在setTimeout中的i变量是你当时存储时的i的值,这个存储区间的i不会因为外面有相同的i变量且赋了不同的值而改变,他依旧是之前存储进去的值,这就是暂时性死区的表现,也是为什么第二处代码运行完毕是顺序打印0,1,2,3,4的原因。

4.在同一个上下文中var可以重复声明,let不行

let monkey='熏悟空';let monkey='逼马吻'; //报错:Identifier 'a' has already been declaredvar pig='猪扒盖';var pig='猪肛裂';  //正常访问,变量pig的值被替换

以上就是JavaScript中var与let的区别是什么,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注行业资讯频道。

变量 代码 作用 就是 关键 死区 结果 运行 关键字 悟空 暂时性 顺序 存储 不同 有效 相同 上下 上下文 关键性 函数 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技工作委员会毛军 互联网通讯科技 港股互联网科技股 互联网金融 科技 上海互联网科技有限公司 上海电发互联网科技有限公司 西藏七维空间互联网科技有限公司 互联网科技博主是什么意思 中国的互联网科技企业的崛起 华服互联网科技官网 荆州市昕露互联网络科技有限公司 崇明区互联网教育科技诚信经营 互联网保险科技创业 广州新华互联网科技学校电竞方面 洛阳共同富裕互联网科技有限公司 锡山区互联网智能科技产品供应 上海创道互联网络科技有限公司 互联网科技机房 同城互联网络科技 武汉亿视互联网科技有限公司 互联网科技活动banner 互联网 新科技 华夏互联网科技业 互联网科技商业 内蒙古九一互联网科技 四川慕妮娅互联网科技有限公司 怎样加入科技互联网 互联网对科技影响 北京品多多互联网科技有限公司 优雇互联网科技有限公司
0