JS中let var 和const区别

news/2024/10/31 10:14:26/

在JavaScript中,letvar 和 const 都是用来声明变量的关键字,但它们之间有几个关键的区别:

  1. 作用域(Scope):

    • var 声明的变量拥有函数作用域(function scope),这意味着如果 var 变量在函数外部声明,它将是一个全局变量;如果在函数内部声明,它只能在那个函数内部被访问。
    • let 和 const 声明的变量拥有块作用域(block scope),这意味着它们的作用域限定在它们被声明的块(如一个花括号 {} 内部的区域)中。
  2. 变量提升(Hoisting):

    • var 声明的变量会被提升到其作用域的顶部,但在初始化之前不能使用,访问未初始化的变量会得到 undefined
    • let 和 const 也会被提升,但是它们不允许在声明之前被访问,如果尝试这样做将会导致一个引用错误(ReferenceError)。
  3. 重复声明(Re-declaration):

    • 在同一个作用域内,var 允许重复声明同一个变量。
    • let 和 const 不允许在同一个作用域内重复声明同一个变量。
  4. 重新赋值(Re-assignment):

    • 使用 var 和 let 声明的变量可以被重新赋值。
    • 使用 const 声明的变量必须在声明时初始化,并且一旦被赋值,其引用就不能再被改变。需要注意的是,const 保证的是变量引用的不可变性,而不是变量的值不可变。例如,如果 const 变量引用的是一个对象,那么对象的属性是可以被修改的。

以下是这些关键字的简单比较:

  • var 是ES5及之前版本中的标准声明方式,现在一般不推荐使用,因为它的作用域和提升行为可能会导致代码中的意外行为。
  • let 是ES6(ECMAScript 2015)中引入的,用于声明块作用域的变量,通常在需要重新赋值的情况下使用。
  • const 也是ES6中引入的,用于声明块作用域的常量,当你不希望变量的引用改变时使用。

总结来说,现代JavaScript编程中推荐尽可能使用 const,只在变量需要被重新赋值时使用 let。这样做可以提高代码的可读性和可维护性。


http://www.ppmy.cn/news/1543322.html

相关文章

桌面程序设计类库MFC是气息奄奄,还是老当益壮呢?

提到桌面程序设计类库,很多人还能想到MFC,这个也忒老了吧?本文就介绍一下这个类库的前生今生,看看有哪些类库可以平替他。 一、MFC是啥,有什么优缺点 MFC(Microsoft Foundation Classes)是微软…

fastGpt

参考本地部署FastGPT使用在线大语言模型 1 rockylinx 1 ollama安装 在rockylinux中安装的,ollama由1.5G,还是比较大,所有采用在windows下下载,然后安装的方式,linux安装 tar -C /usr -xzf ollama-linux-amd64.tgz #…

第七章利用CSS和多媒体美化页面

7.1 CSS链接的美化 7.1.1.文字链接的美化 在HTML5中&#xff0c;<a></a >标签始终定义超链接&#xff0c;用于从一张页面链接到另一张页面。<a>元素最重要的属性是href 属性&#xff0c;它指示链接的目标&#xff0c;如果未设置href属性&#xff0c;后续多个…

【开源免费】基于SpringBoot+Vue.JS在线文档管理系统(JAVA毕业设计)

本文项目编号 T 038 &#xff0c;文末自助获取源码 \color{red}{T038&#xff0c;文末自助获取源码} T038&#xff0c;文末自助获取源码 目录 一、系统介绍二、演示录屏三、启动教程四、功能截图五、文案资料5.1 选题背景5.2 国内外研究现状5.3 可行性分析 六、核心代码6.1 查…

Java8中CompletableFuture.allOf的使用

目录标题 CompletableFuture.allOf(...)&#xff1b;CompletableFuture.allOf(...).get();CompletableFuture.allOf(...).join();总结如何优雅的处理异常呢&#xff1f; CompletableFuture.allOf(…)&#xff1b; CompletableFuture.allOf(…) 本身不会等待所有的 Completable…

【Kubernets】k8s进阶-深入了解一下Label的用法

文章目录 标签的用法标签选择器的用法查询方式 &#x1f914; 标签选择器有哪些高级用法&#xff1f;在Kubernetes中&#xff0c;标签选择器的高级用法非常灵活&#xff0c;允许进行复杂的资源选择和操作。以下是一些高级用法的例子&#xff1a;除了标签Label&#xff0c; 还有…

VBA在低版本Excel中创建unique函数的方法

UNIQUE函数通常用来返回列表或范围中的一系列唯一值&#xff0c;也就是过滤掉重复值。我们可以利用 UNIQUE 函数 与 FILTER 函数的组合进行深度筛选&#xff0c;但在Excel2021以上版本才会提供该函数&#xff0c;在低版本的Excel中我们可以使用VBA创建一个自定义函数来模仿高版…

HTML、JavaScript和CSS实现注册页面设计

目录 一、实现要求 二、实现页面图 1、注册页面 2.用户ID、用户名、口令验证成功后显示页面 三、用户ID、用户名、口令、确定口令验证逻辑js代码 1、验证用户ID 2、验证用户名 3、验证口令密码 四、总结 五、代码仓库 一、实现要求 综合使用HTML、JavaScript和CSS进…