前端JavaScript篇之let、const、var的区别

目录

  • let、const、var的区别


let、const、var的区别

let、const和var是JavaScript中用于声明变量的关键字,它们之间有一些区别。

首先,var是在ES5中引入的关键字,而let和const是在ES6中引入的。在ES6之前,我们只能使用var来声明变量。

var关键字存在一些特殊的行为,它具有函数作用域而不是块级作用域。这意味着使用var声明的变量在整个函数内部都是可见的,而不仅仅是在声明的块内部。

相比之下,let和const关键字引入了块级作用域。块级作用域是指变量仅在声明它们的块(通常是由花括号 {} 包裹的代码块)内部可见。这意味着使用let或const声明的变量只在当前块内有效,超出块的范围后就无法访问。

另一个区别是var关键字存在变量提升(hoisting)的行为,即变量可以在声明之前使用。这意味着我们可以在变量声明之前访问和使用它,但它的值会是undefined。而let和const不存在变量提升,如果在声明之前访问变量,会抛出一个引用错误。

此外,let和const还有一个重要的区别是它们的赋值和重新赋值行为。使用let声明的变量可以被重新赋值,而使用const声明的变量是常量,一旦赋值后就无法再修改。

下面是一个具体的案例,展示了let、const和var的区别:

function example() {
  var x = 10
  let y = 20
  const z = 30

  if (true) {
    var x = 50
    let y = 60
    const z = 70
    console.log('Block scope:', x, y, z) // 输出:Block scope: 50 60 70
  }

  console.log('Function scope:', x, y, z) // 输出:Function scope: 50 20 30
}

example()

console.log('Global scope:', x) // 输出:ReferenceError: x is not defined

请添加图片描述

在上述代码中,我们定义了一个函数example,内部使用var、let和const声明了变量x、y和z。

在函数的块级作用域内部,我们通过var重新赋值了变量x,并使用let和const声明了新的变量y和z。在块级作用域内部,x的值被修改为50,y和z分别是60和70。

在函数的函数作用域内部,我们输出了变量x、y和z的值。由于var具有函数作用域,块级作用域内的x的赋值影响了函数作用域内的x,因此输出了50。而let和const的作用域仅限于块级作用域,所以函数作用域内的y的值保持为20,z的值保持为30。

最后,在全局作用域中访问变量x时,由于x是在函数作用域内部声明的,因此会抛出一个引用错误。

区别varletconst
块级作用域×✔️✔️
变量提升✔️××
全局属性✔️××
重复声明变量✔️××
暂时性死区×✔️✔️
初始值设置××✔️
指针指向✔️✔️×

总结来说,let、const和var之间的主要区别在于作用域和赋值行为。let和const引入了块级作用域,并且const声明的变量是常量不可修改,而var具有函数作用域和变量提升的特性。

持续学习总结记录中,回顾一下上面的内容:
let、const和var之间的主要区别在于作用域和赋值行为。let和const引入了块级作用域,并且const声明的变量是常量不可修改,而var具有函数作用域和变量提升的特性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/364922.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

基于STM32F103C8T6最小系统板(对标某淘)

原理图和PCB都和某淘购买一样!!! 原理图 PCB 3D图

炒股操作方法!南通怎么开股票账户佣金最低?炒股交易手续费最低?

炒股操作方法可以有很多种,以下是一些建议:这些是一些股票交易技巧,希望对你有帮助。请记住,投资有风险,决策请谨慎。 设定明确的投资目标:确定你的投资目标,是为了长期投资还是短期交易&#x…

BGP按组打包

按组打包技术将所有拥有共同出口策略的BGP邻居当作是一个打包组 每条待发送路由只被打包一次然后发给组内的所有邻居 RR1发给三个Client,需要发三份路由。 通过按组打包,可以将路由打包,一次发给所有组内的邻居(前提是出口策略相…

【数据分享】1929-2023年全球站点的逐年最高气温数据(Shp\Excel\免费获取)

气象数据是在各项研究中都经常使用的数据,气象指标包括气温、风速、降水、湿度等指标,其中又以气温指标最为常用!说到气温数据,最详细的气温数据是具体到气象监测站点的气温数据! 之前我们分享过1929-2023年全球气象站…

微服务-微服务Alibaba-Nacos 源码分析 (源码流程图)

客户端流程 客户端心跳与实例往服务端注册

fastadmin导入excel并对导入数据处理

情景描述 fastadmin有自带的导入功能,但是不好用,它要求你的表格标题必须跟数据表的备注一致,而且拿到的数据是直接插入数据表,我们无法获取想要的数据并对数据进行处理;而且有时候我们只是想要单纯的读取文件功能&…

k8s之安装部署及kuboard发布应用

目录 环境准备 系统规划 配置免密 将桥接的IPv4流量传递到iptables的链 系统基础配置 安装docker 安装docker及基础依赖 配置docker的仓库下载地址 部署k8s 添加阿里云的k8s源 安装kubeadm,kubelet和kubectl 初始化masteer节点 部署node节点 部署flanne…

代码随想录算法训练营第五十九天|503.下一个更大元素II 、42. 接雨水

代码随想录算法训练营第五十九天|503.下一个更大元素II 、42. 接雨水 下一个更大元素II 503.下一个更大元素II 文章讲解:https://programmercarl.com/0503.%E4%B8%8B%E4%B8%80%E4%B8%AA%E6%9B%B4%E5%A4%A7%E5%85%83%E7%B4%A0II.html 题目链接:https://…

守好“安全关” 筑牢“安全线”—济南中医风湿病医院6S管理小组开展安全生产大检查活动

春节将至,许多患者希望在春节前获得康复,因此预约到院参与会诊的患者数量较多。为营造干净整洁迎佳节的浓厚氛围,提升群众就医满意度,优化就医服务,改善医院医疗环境,结合6S精益管理,做到整理、…

深度学习的新前沿:突破、应用与挑战

引言 深度学习的快速发展已经在人工智能领域引起了革命性的变化。作为模仿人脑结构和功能的强大工具,深度神经网络在图像识别、自然语言处理、医学诊断等多个领域取得了显著成就。但是,随着技术的不断推进,深度学习也在不断地进化和扩展其能…

【QT】贪吃蛇小游戏 -- 童年回忆

成品展示 项目分析: 🐍基本元素如下 🐍小蛇的设计,初始大小蛇头占一个方块,蛇身占两个方块。 🐍关于小蛇的移动,采用蛇头前进方向增加一个方块,蛇尾减掉一个方块的实现方法。 &#…

迷你洗衣机哪个牌子好又实惠?最好用的迷你洗衣机分享

随着大家工作的压力越来越大,下了班之后只能想躺平,在洗完澡之后看着还需要手洗的内衣裤真的很头疼。有些小伙伴还有会攒几天再丢进去洗衣机里面一起,而且这样子是非常不好的,用过的内衣裤长时间不清洗容易滋生细菌,而…

Vue3_基础使用

vue2的选项式与vue3的组合式区别: 选项式:vue2中数据与方法计算属性等等,针对一个数据的处理在不同的配置中,当业务复杂时很难维护,修改起来也不好查找。 vue3的组合式:将针对数据的方法计算属性等等放在一…

10.网桥是什么?网桥和路由器及交换机的区别?以太网和令牌环网,nat,查公网ip等

网桥是什么?有什么作用? 网桥是一种网络设备,它可以在数据链路层(第二层)上连接不同的局域网(LAN),并根据MAC地址转发数据帧。网桥的作用是: 隔离碰撞域,提…

QML自定义ComboBox组件,支持动态筛选

QtQuick.Controls提供了ComboBox组件,该组件能够满足日常的下拉选择框的需求,但当需要用户在ComboBox中通过输入关键字进行自动匹配时,原生的组件虽然提供了editable属性用于输入关键字,但是匹配内容不弹出下拉框,无法…

2024年美赛数学建模D题思路分析 - 大湖区水资源问题

# 1 赛题 问题D:大湖区水资源问题 背景 美国和加拿大的五大湖是世界上最大的淡水湖群。这五个湖泊和连接的水道构成了一个巨大的流域,其中包含了这两个国家的许多大城市地区,气候和局部天气条件不同。 这些湖泊的水被用于许多用途&#xff…

《Pandas 简易速速上手小册》第8章:Pandas 高级数据分析技巧(2024 最新版)

文章目录 8.1 使用 apply 和 map 函数8.1.1 基础知识8.1.2 重点案例:客户数据清洗和转换8.1.3 拓展案例一:产品评分调整8.1.4 拓展案例二:地址格式化 8.2 性能优化技巧8.2.1 基础知识8.2.2 重点案例:大型销售数据分析8.2.3 拓展案…

Python之数据分析

【案例】 某公司有2份数据文件,现在需要对其进行数据分析,计算每日的销售额并以柱状图表的形式进行展现。 数据如下: 一月份数据: 二月份数据: 需求分析 根据题目要求我们要得到每日销售额,分析文本数据可以…

一些你可能用到的头文件和函数

1. gets 函数和 fgets 函数。 两者功能相似,都是输入 char 型 字符,但是格式和稳定性有所差别。前者gets稳定性较弱,但是用法简单,格式如下: 现在一些工程都用 fgets 函数,因为它的强大的稳定性&#xff0…

玩转全新nova12系列熄屏显示,做最潮nova星人!

熄屏显示一直是大家非常喜欢的一项功能,可以让我们在不影响他人的情况下随时随时地查看消息提醒。华为nova12全系列机型均支持熄屏显示功能,且在系列上更是有重磅升级,熄屏显示不再只局限于一小块区域,整个屏幕都可以作为显示空间…