var和let的区别

简介: var和let的区别

var和let都用于声明变量,不同的是:

1.let声明的变量不能重复声明

2.let声明的变量不能变量提升

当使用var声明一个var变量时,该变量会被提升到作用域的顶端,但是赋值的部分不会提升。

在声明a的语句之前就可以输出a,值为undefined,这就是变量提升

使用let声明变量时不能变量提升。

3.var是函数作用域,let是块状作用域:

在函数里使用var声明了一个变量,那么这个变量在整个函数内都是有效的,例如在for循环里用var声明一个变量,在for循环外也是可以使用的。但是let作用域是块状作用域,只在作用域里有效,例如在for循环里用let声明一个变量,在for循环外面是不能被访问的。

4.使用let声明的变量不属于顶层对象

顶层对象,在浏览器中指的是window,在node环境中指的是global对象。

var声明的变量属于顶层对象window,因此可以通过 window. 变量名 来访问这些变量,而let和const声明的变量不能这样访问。

相关文章
|
前端开发 JavaScript
JavaScript中的原型和原型链
JavaScript中的原型和原型链
926 0
|
2月前
|
SQL 关系型数据库 MySQL
数据量大查询慢?索引让你的SQL秒级响应!|转行学DB第9天
用生活化比喻(如字典目录)详解索引原理:它通过B+树结构加速查询,避免全表扫描;涵盖创建、查看、删除索引方法,联合索引的最左前缀原则,以及读写平衡等实战要点——让查询从“等几秒”变“秒出”!
数据量大查询慢?索引让你的SQL秒级响应!|转行学DB第9天
|
3月前
|
存储 人工智能 弹性计算
2026阿里云活动汇总:最新云服务器抢购、AI焕新季、云产品组合购及优惠券活动
2026年阿里云推出多项优惠活动,涵盖轻量应用服务器与云服务器特价抢购、AI焕新季礼包、云产品组合特惠及优惠券等多重福利。活动面向个人开发者、学生、初创企业及中小企业,提供从入门到高性能计算的全场景云资源需求解决方案。用户可根据需求选择不同配置的云服务器,如38元/年的轻量2核2G服务器、99元/年的经济型e实例等,并享受安全加速、数据分析、建站推广等一站式服务。灵活运用优惠券可进一步降低成本,助力业务创新与增长。
|
搜索推荐 Android开发 开发者
Android星级评分条RatingBar样式的改变及出现问题的解决方法
本文介绍了自定义 RatingBar 的实现方法,通过布局文件、layer-list 样式文件和 style 文件的配置完成个性化星星评分效果。关键步骤包括:1) 在布局文件中添加 RatingBar 并引用样式;2) 创建 layer-list 文件定义背景、次级进度和进度图片;3) 在 style 文件中定义 RatingBar 样式并应用到布局中。可能出现的问题及解决办法:直接报错通常是图片素材过大,调整尺寸即可;星星流眼泪是图片形状问题,需将图片置于透明圆形或正方形内重新组合。附有具体代码示例,方便开发者快速上手实现自定义评分组件。
509 12
|
存储 消息中间件 JavaScript
vue组件传值的12种方式
【10月更文挑战第1天】
1596 159
|
存储 人工智能 移动开发
uni-app+vue3接入deepseek-v3搭建跨端ai流式(小程序+app+h5)
基于Uniapp+Vue3+Markdown接入DeepSeek-V3聊天大模型,支持编译到H5+小程序+App端。实现流式输出、支持亮色/暗黑主题、代码高亮、会话本地存储等功能。
2291 12
|
监控 前端开发 Java
Java里的过滤器和拦截器是什么原理,如何选择?
Java里的过滤器和拦截器是什么原理,如何选择?
472 0
Vue3-admin-template 框架修改登录页面
Vue3-admin-template 框架修改登录页面
1643 0
|
监控 Java 调度
使用Java实现高性能的定时任务调度
使用Java实现高性能的定时任务调度