JS中var和let和const的区别
在我很早之前,我还在用着var,直到接触到了let与const,我才知道var造成的影响很多,我果断的抛弃了var,哈哈
让我为大家介绍一下它们的区别吧!
1.块级作用域
块作用域由 { }包括,let和const具有块级作用域,var不存在块级作用域
{// var没有块级作用域var a = 10// let有块级作用域let b = 20// const有块级作用域const c = 30}console.log(a) //打印10console.log(b) //报错,b is not definedconsole.log(c) //报错,c is not defined ,因为let已经报错,后面没打印出来
块级作用域解决了ES5中的两个问题:
内层变量可能覆盖外层变量
var a = 5function fun() {//变量提升导致,没有块级作用域console.log(a) //undefined{var a = 10}}fun()
用来计数的循环变量泄露为全局变量
for(var i = 0;i < 5;i++){console.log(i) //0 1 2 3 4}console.log(i) //5
2.变量提升
var存在变量提升,let和const不存在变量提升,即在变量只能在声明之后使用,否则会报错
// var变量提升console.log(a) //undefinedvar a = 10
// let与const没有变量提升console.log(a) //报错let a = 10 console.log(b)//报错const b = 10
3.重复声明
var声明变量时,可以重复声明变量,后声明的同名变量会覆盖之前声明的变量。const和let不允许重复声明变量。
var a = 10console.log(a) //10var a = 20console.log(a) //20
let a = 10let a = 20console.log(a) //报错
const a = 10const a = 20console.log(a) //报错
4.暂时性死区
在使用let、const命令声明变量之前,该变量都是不可用的。这在语法上,称为暂时性死区。使用var声明的变量不存在暂时性死区
因为var的作用域为全局作用域,存在变量提升,let与const没有变量提升,而且let与const有块作用域
代码同变量提升模块
5.初始值设置
在变量声明时,var 和 let 可以不用设置初始值。而const声明变量必须设置初始值。
var aconsole.log(a) //undefinedlet bconsole.log(b) //undefinedconst cconsole.log(c) //报错 在const声明中缺少初始化式
感谢大家的阅读,如有什么不对的地方,可以向我指出,感谢大家!
相关文章:
JS中var和let和const的区别
在我很早之前,我还在用着var,直到接触到了let与const,我才知道var造成的影响很多,我果断的抛弃了var,哈哈 让我为大家介绍一下它们的区别吧! 1.块级作用域 块作用域由 { }包括,let和const具有…...
如何利用IP定位技术进行反欺诈?
网络欺诈风险是指在互联网和数字领域中,存在各种类型的欺诈活动,旨在欺骗个人、组织或系统以获得非法获益。以下是一些常见的网络欺诈风险类型: 身份盗用:这是一种欺诈行为,涉及盗取他人的个人身份信息,如姓…...
wireshark抓包本地IDEA xml格式报文教程以及postman调用接口
1、选择 2、筛选...
MySQL学习(六)——视图和触发器
文章目录 1. 视图1.1 视图语法1.2 检查选项1.3 视图的更新1.4 视图的作用 2. 触发器2.1 介绍2.2 语法介绍2.3 触发器示例2.3.1 插入数据触发器2.3.2 修改数据触发器2.3.3 删除数据触发器 1. 视图 视图(View)是一种虚拟存在的表。视图中的数据并不在数据…...
那些你面试必须知道的ES6知识点
目录 1、var、let、const的区别2、作用域考题3、合并两个对象4、箭头函数和普通函数的区别5、Promise有几种状态6、find和filter的区别7、some和every的区别 1、var、let、const的区别 区别一: var有变量提升,而let和const没有 <script>console.l…...
AD9371 系列快速入口
参考资料: AD9371 JESD204 Interface Framework Generic JESD204B block designs AD9371 & AD9375 Prototyping Platform User Guide ADI™ Reference Designs HDL User Guide 相关设备 : ZCU106ADRV9371CPRO33-30.726 dB 衰减 AD9371ZCU102 移植到…...
Jenkins+vue发布项目
在Jenkins 中先创建一个任务名称 然后进行下一步,放一个项目 填写一些参数 参数1: 参数2: 参数3:参数4: 点击保存就行了 配置脚本 // git def git_url http://gitlab.xxxx.git def git_auth_id GITEE_RIVER…...
RSTP详解:对比STP,到底改进了什么?
一、RSTP概述 IEEE 802.1W中定义的RSTP可以视为STP的改进版本,RSTP在许多方面对STP进行了优化,它的收敛速度更快,而且能够兼容STP。 二、RSTP对STP的改进 改进点1:端口角色 、 改进点2:端口状态 RSTP的状态规范缩…...
从0到1,申请cos服务器并上传图片到cos文件服务器
目录 准备工作 Java代码编写 控制台打印 整理成工具类 编写接口 Postman测试 准备工作 1.进入网址腾讯云 产业智变云启未来 - 腾讯 (tencent.com) 2.搜索cos,点击立即使用,刚开始会免费赠送你 3.存储都是基于桶的,先创建桶,在桶里面创…...
Stm32_标准库_15_串口蓝牙模块_手机与蓝牙模块通信_BUG修复
代码: #include "stm32f10x.h" // Device header #include "Delay.h" #include "OLED.h" #include "Serial.h" #include "Time.h" #include "Function.h" #include <stdio.h> #include <…...
文心一言帮忙写代码之微信小程序图片移动顺序
先上效果图,图片顺序可移动,左移右移调准顺序。 代码是文心一言帮忙写的,自己稍微改造就可以用了。 首先是往左移,也就是从下标1移到下标0 ,下标2移到下标1 var imglist [‘aa’, ‘bb’, ‘cc’, ‘dd’]; function…...
【电子通识】USB接口三大类型图册
基本概念 不同时期的USB接口有不同的类型,USB接口分为插头和插座: 插头,plug,对应的也叫公口,即插别人的。 插座,receptacle,对应也叫做母口,即被插的。 USB的接口类型࿰…...
@Controller与@RestController
总结 Controller :定义一个控制器类. RequestMapping :给出外界访问方法的路径,或者说触发路径 ,触发条件。 具体解析访问路径到某个方法上. ResponseBody :标记Controller类中的方法。把return的结果变成JSON对象…...
Compose Desktop 使用中的几个问题(分平台加载资源、编写Gradle 任务下载平台资源、桌面特有组件、鼠标键盘事件)
前言 在我之前的文章 Compose For Desktop 实践:使用 Compose-jb 做一个时间水印助手 中,我们使用 Compose For Desktop 写了一个用于读取照片 EXIF 中的拍摄日期参数并以文字水印的方式添加到照片上的桌面程序。 但是事实上,这个程序的名字…...
【华为OD机试python】返回矩阵中非1的元素个数【2023 B卷|200分】
【华为OD机试】-真题 !!点这里!! 【华为OD机试】真题考点分类 !!点这里 !! 题目描述 存在一个m*n的二维数组,其成员取值范围为0,1,2。 其中值为1的元素具备同化特性,每经过1S,将上下左右值为0的元素同化为1。 而值为2的元素,免疫同化。 将数组所有成员随机初始化为0或…...
容器安全 - 利用容器的特权配置实现对Kubernetes容器的攻击
《OpenShift / RHEL / DevSecOps 汇总目录》 文章目录 准备环境利用特权配置对Kubernetes容器攻击privileged hostpathprivileged hostpidprivilegedhostpathhostpidhostipchostnetwork 参考 通过将运行 Pod 的 privileged 设为 true,容器就以特权模式运行在宿主…...
深度剖析Android Binder IPC机制
Android系统的成功离不开其强大的IPC(Inter-Process Communication)机制,其中最引人注目的就是Binder。本文将深入探讨Binder的技术原理,解释其工作方式以及相关的关键概念。 什么是Binder Binder是Android系统中的IPC机制&…...
【底层服务/编程功底系列】「大数据算法体系」带你深入分析MapReduce算法 — Shuffle的执行过程
【底层服务/编程功底系列】「大数据算法体系」带你深入分析MapReduce算法 — Shuffle的执行过程 Shuffle是什么Shuffle的流程处理map任务的执行流程reduce任务的执行流程 Shuffle过程分析和优化map任务深入分析细化步骤分析1. 数据分片读取2. 分配计算Reduce服务Partitioner分区…...
CISA 彻底改变了恶意软件信息共享:网络安全的突破
在现代网络安全中,战术技术和程序(TTP)的共享对于防范网络事件至关重要。 因此,了解攻击向量和攻击类型之间的关联如今是让其他公司从其他公司遭受的 IT 事件中受益(吸取经验教训)的重要一步。 美国主要网…...
macos 12 支持机型 macOS Monterey 更新中新增的功能
macOS Monterey 能让你以全然一新的方式与他人沟通联络、共享内容和挥洒创意。尽享 FaceTime 通话新增的音频和视频增强功能,包括空间音频和人像模式。通过功能强大的效率类工具(例如专注模式、快速备忘录和 Safari 浏览器中的标签页组)完成更…...
华为云AI开发平台ModelArts
华为云ModelArts:重塑AI开发流程的“智能引擎”与“创新加速器”! 在人工智能浪潮席卷全球的2025年,企业拥抱AI的意愿空前高涨,但技术门槛高、流程复杂、资源投入巨大的现实,却让许多创新构想止步于实验室。数据科学家…...
Golang dig框架与GraphQL的完美结合
将 Go 的 Dig 依赖注入框架与 GraphQL 结合使用,可以显著提升应用程序的可维护性、可测试性以及灵活性。 Dig 是一个强大的依赖注入容器,能够帮助开发者更好地管理复杂的依赖关系,而 GraphQL 则是一种用于 API 的查询语言,能够提…...
江苏艾立泰跨国资源接力:废料变黄金的绿色供应链革命
在华东塑料包装行业面临限塑令深度调整的背景下,江苏艾立泰以一场跨国资源接力的创新实践,重新定义了绿色供应链的边界。 跨国回收网络:废料变黄金的全球棋局 艾立泰在欧洲、东南亚建立再生塑料回收点,将海外废弃包装箱通过标准…...
C++中string流知识详解和示例
一、概览与类体系 C 提供三种基于内存字符串的流,定义在 <sstream> 中: std::istringstream:输入流,从已有字符串中读取并解析。std::ostringstream:输出流,向内部缓冲区写入内容,最终取…...
深入解析C++中的extern关键字:跨文件共享变量与函数的终极指南
🚀 C extern 关键字深度解析:跨文件编程的终极指南 📅 更新时间:2025年6月5日 🏷️ 标签:C | extern关键字 | 多文件编程 | 链接与声明 | 现代C 文章目录 前言🔥一、extern 是什么?&…...
【C++从零实现Json-Rpc框架】第六弹 —— 服务端模块划分
一、项目背景回顾 前五弹完成了Json-Rpc协议解析、请求处理、客户端调用等基础模块搭建。 本弹重点聚焦于服务端的模块划分与架构设计,提升代码结构的可维护性与扩展性。 二、服务端模块设计目标 高内聚低耦合:各模块职责清晰,便于独立开发…...
有限自动机到正规文法转换器v1.0
1 项目简介 这是一个功能强大的有限自动机(Finite Automaton, FA)到正规文法(Regular Grammar)转换器,它配备了一个直观且完整的图形用户界面,使用户能够轻松地进行操作和观察。该程序基于编译原理中的经典…...
Java毕业设计:WML信息查询与后端信息发布系统开发
JAVAWML信息查询与后端信息发布系统实现 一、系统概述 本系统基于Java和WML(无线标记语言)技术开发,实现了移动设备上的信息查询与后端信息发布功能。系统采用B/S架构,服务器端使用Java Servlet处理请求,数据库采用MySQL存储信息࿰…...
(一)单例模式
一、前言 单例模式属于六大创建型模式,即在软件设计过程中,主要关注创建对象的结果,并不关心创建对象的过程及细节。创建型设计模式将类对象的实例化过程进行抽象化接口设计,从而隐藏了类对象的实例是如何被创建的,封装了软件系统使用的具体对象类型。 六大创建型模式包括…...
Ubuntu Cursor升级成v1.0
0. 当前版本低 使用当前 Cursor v0.50时 GitHub Copilot Chat 打不开,快捷键也不好用,当看到 Cursor 升级后,还是蛮高兴的 1. 下载 Cursor 下载地址:https://www.cursor.com/cn/downloads 点击下载 Linux (x64) ,…...
