js中var、let、const的区别是什么

JavaScript 中的关键字 var 是开发人员用于变量声明的第一个关键字。ES6 中引入了关键字 let 和 const 作为 var 的替代。它们非常有用,如今几乎每个 JavaScript 开发人员都在使用它们。与关键字 var 不同,这两个关键字具有块作用域。

一、var 关键字

JavaScript 中的关键字 var 是开发人员用于变量声明的第一个关键字。

当你使用关键字 var 在函数内声明变量时。该变量在该函数之外无法访问,因为在这种情况下它具有函数作用域。

下面是一个例子:

function sayHelllo() {
 var greeting = 'Hello!';
 console.log(greeting);
}

sayHelllo(); // 'Hello!'

console.log(greeting) // ReferenceError: sentence is not defined

如上所示,当我们在函数内部调用变量 greeting 时,我们会在调用函数时在控制台中得到响应。

但是当我们在函数外调用 greeting 时,我们会得到一个引用错误,因为在函数内用关键字 var 声明的变量在该函数外是不可访问的。

但是,如果在函数外部使用关键字 var 声明变量,它将具有全局作用域。这意味着它可以在你的代码中的任何地方访问。

下面是一个例子:


/* This variable has a global scope, it's accessible everywhere */
var greeting = "Hello John";
function sayHelllo() {
 console.log(greeting); // "Hello John"
}
console.log(greeting); // "Hello John"

因此,在函数外部使用关键字 var 声明的变量是全局范围的。它们随处可见。

除此之外,带有关键字 var 的变量是可声明和可重新分配的。这意味着您可以重新声明相同的变量并重新分配它,而不会出现任何问题。

下面是一个例子:

var name = 'John';
var name = 'Brad';
console.log(name) // 'Brad'

即使我们声明了相同的变量并重新分配了它,代码仍然可以正常工作而不会出错。但是,这并不好,因为有时你可以编写相同的变量,甚至在代码中都没有注意到它们。这也可能导致你的程序出错。

使用 var 时要记住的另一件事是,使用关键字 var 声明的所有变量和函数都被提升到其作用域的顶部。如果你不熟悉 JavaScript 中的提升,我真的建议你学习它,因为这是一个需要了解的重要概念。

二、关键字 let 和 const

ES6 中引入了关键字 let 和 const 作为 var 的替代。它们非常有用,如今几乎每个 JavaScript 开发人员都在使用它们。

与关键字 var 不同,这两个关键字具有块作用域。这意味着当你在块中声明它们时,它们只能在该块 {} 内访问。

下面是一个例子:

{
    const a = 5;
    let b = 6;
    var c = 8;
}
//Accessing the variables outside the block.
console.log(a); //Error: a is not defined.
console.log(b); //Error: b is not defined.
console.log(c); // 8

如你所见,使用 const 和 let 声明的变量在大括号之间的范围之外不可访问。这就是我们得到错误的原因。所以这非常有用,因为有时使用关键字 var 你可以在不注意它的情况下更改变量。

另外,请记住,与 var 不同,使用 let 和 const 声明的变量和函数不会被提升。所以你不必关心吊装。

现在,你可能想知道 let 和 cosnt 之间的区别是什么?

好吧,用关键字 let 声明的变量是可重新分配的,而不是可重新声明的。虽然使用关键字 const 声明的变量不可重新分配且不可重新声明。

因此,只需将 let 用于稍后要更改的变量,而 const 用于你不想更改的常量变量。

下面是一个例子:


const name = "Brad";
const name = John; //Error.
let x = 1;
x = 2;
console.log(name); //"Brad"
console.log(x); // 2

三、差异

关键字 var :

  • 函数作用域和全局作用域。
  • 吊起。
  • 可重新分配和重新申报。

关键字 let :

  • 块范围。
  • 没有吊起来。
  • 可重新分配且不可重新申报。

关键字 const :

  • 块范围。
  • 没有吊起来。
  • 不可重新分配且不可重新申报。

延伸阅读

JavaScript的主要特点

  • 基于事件:JavaScript能够响应用户的各种行为,如点击、滑动、键盘输入等,这使得网页能够提供交互性的用户体验。
  • 基于对象:JavaScript使用基于原型的面向对象编程模式,它允许开发者创建对象,并在对象之间共享属性和方法。
  • 动态类型:JavaScript是动态类型的语言,这意味着变量的类型是在运行时决定的,不需要在声明变量时指定类型。

文章标题:js中var、let、const的区别是什么,发布者:E.Z,转载请注明出处:https://worktile.com/kb/p/51971

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
E.ZE.Z认证作者
上一篇 2023年5月13日
下一篇 2023年5月13日

相关推荐

  • oa费控系统

    OA费控系统的作用在于对组织内部和外部相关费用的申请、支付、报销等流程实施自动化管理。利用技术手段,确保费用管控的合规性、准确性、实时性,此外,通过数据分析辅助决策。它包括以下几个关键性能:1、流程自动化,2、合规性审查,3、数据分析,4、费用可视化。其中流程自动化功能降低了手工操作错误与工作量,进…

    2024年1月12日
    14000
  • 大数据与Python的区别

    区别:大数据指的是所涉及的资料量规模巨大到无法透过主流软件工具,在合理时间内达到撷取、管理、处理、并整理成为帮助企业经营决策更积极目的的资讯。Python是作为一门叫做ABC语言的替代品。Python提供了高效的高级数据结构,还能简单有效地面向对象编程。 大数据 大数据(big data),或称巨量…

    2023年2月21日
    31300
  • 华为的愿景

    华为的愿景有过升级,过去,华为的愿景是:丰富人们的沟通和生活。2018年,华为紧跟时代步伐,把公司的使命愿景升级为:把数字世界带入每个人、每个家庭、每个组织,构建万物互联的智能世界。 一、华为的愿景 华为的愿景有过升级,过去,华为的愿景是:丰富人们的沟通和生活。2004年4月28日任正非在“广东学习…

    2023年3月24日
    3.9K01
  • git是什么工具

    Git是一款分布式源代码管理工具(版本控制工具) 。git 是一个分布式版本控制软件,与CVS、Subversion一类的集中式版本控制工具不同,它采用了分布式版本库的作法,不需要服务器端软件,就可以运作版本控制,使得源代码的发布和交流极其方便。 什么是git git 是一个分布式版本控制软件,最初…

    2022年12月27日
    50000
  • 芯片生产的核心技术环节是什么

    芯片生产的核心技术环节是:1、芯片设计;2、芯片制造;3、封装测试。芯片设计就是通过eda设计软件画出电路图,芯片设计最开始需要明确芯片的用途、规格和性能表现,让工程师根据芯片的特点将芯片内部的规格使用划分出来,规划每个部分的功能需求空间。 1、芯片设计 芯片设计就是通过eda设计软件画出电路图,芯…

    2023年1月27日
    1.3K00
  • oa软件有那些

    标题:OA软件的多样性与功能概述 摘要:OA软件,亦称办公自动化软件,1、提升工作效率;2、促进信息共享;3、增强企业管理;4、便捷移动办公;5、保障数据安全。扮演现代企业中不可或缺的角色。以提升工作效率为例,通过优化日常工作流程、自动化处理重复任务、使得员工能够将更多时间投入到核心业务活动中。OA…

    2024年1月11日
    10300
  • 业务管理师需要做什么

    业务管理师对公司相关业务部门及各分支机构的业务操作实施对口管理,协助总经理处理相关业务,并下发总经理的指令,听取公司员工及客户的意见及建议,做出正确的选择同总经理汇报。 业务管理岗位一般是公司对各类业务管理的职能部门,对公司相关业务部门及各分支机构的业务操作实施对口管理,协助总经理处理相关业务,并下…

    2022年11月6日
    54000
  • 如何在DevOps中实现有效的变更管理

    在DevOps实践中实现有效的变更管理意味着确保软件开发和运维的流程是高效、可靠的。这涉及1、采用自动化的流程;2、强调沟通与协作;3、采用透明的变更记录;4、实施持续集成和持续部署(CI/CD);5、进行风险评估与测试。采用自动化可以减少人为错误,加快交付速度。沟通与协作是确保团队成员间有效交流的…

    2023年12月13日
    20700
  • 如何设立okr|OKR

    标题:如何设立OKR 摘要:设立OKR(Objectives and Key Results)涉及确定主观目标、制定关键结果、确保团队协作1、设置透明度和灵活性2、持续跟踪和反馈3。在其设立过程中,特别关键的一个点是将关键结果(KRs)设定为可量化和实际可追踪的指标。这确保了OKR的客观性和衡量成效…

    2024年1月17日
    9000
  • 类似 Jira 的轻量化项目管理软件有哪些

    类似 Jira 的轻量化项目管理软件有:1.PingCode;2.Worktile;3.Redmine;4.Trello;5.Moday;6.Teambition;7.Clickup;8.Tapd;9.思码逸;10.云效平台。企业寻找的 Jira 替代工具的时候并不是要求100%取代Jira,而是有…

    2023年2月8日
    66000

发表回复

登录后才能评论
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部