首页 > 其他分享 >let、var 或 const 之间有什么区别?

let、var 或 const 之间有什么区别?

时间:2024-09-20 21:15:26浏览次数:6  
标签:const log qux baz let var bar

使用 var 关键字声明的变量的作用域为创建它们的函数,或者如果在任何函数外部创建,则为全局对象。 let 和 const 是块作用域的,这意味着它们只能在最近的一组花括号(函数、if-else 块或 for 循环)内访问。function foo() { // all variables are accessible within functions. var bar = 'bar'; let baz = 'baz'; const qux = 'qux'; console.log(bar); // bar console.log(baz); // baz console.log(qux); // qux}console.log(bar); // referenceerror: bar is not definedconsole.log(baz); // referenceerror: baz is not definedconsole.log(qux); // referenceerror: qux is not definedif (true) { var bar = 'bar'; let baz = 'baz'; const qux = 'qux';}// var declared variables are accessible anywhere in the function scope.console.log(bar); // bar// let and const defined variables are not accessible outside the block they were defined in.console.log(baz); // referenceerror: baz is not definedconsole.log(qux); // referenceerror: qux is not defined登录后复制var 允许变量被提升,这意味着它们可以在声明之前在代码中引用。 let 和 const 不会允许这样做,而是会抛出错误。console.log(foo); // undefinedvar foo = 'foo';console.log(baz); // referenceerror: can't access lexical declaration 'baz' before initializationlet baz = 'baz';console.log(bar); // referenceerror: can't access lexical declaration 'bar' before initializationconst bar = 'bar';登录后复制用var重新声明变量不会报错,但let和const会报错var foo = 'foo';var foo = 'bar';console.log(foo); // "bar"let baz = 'baz';let baz = 'qux'; // uncaught syntaxerror: identifier 'baz' has already been declared登录后复制let 和 const 的区别在于 let 允许重新分配变量的值,而 const 则不允许。// This is fine.let foo = 'foo';foo = 'bar';// This causes an exception.const baz = 'baz';baz = 'qux';登录后复制 以上就是let、var 或 const 之间有什么区别?的详细内容,更多请关注我的其它相关文章!

标签:const,log,qux,baz,let,var,bar
From: https://www.cnblogs.com/aow054/p/18423282

相关文章

  • CompletableFuture使用示例
    CompletableFuture是Java8中引入的一个功能强大的类,它实现了Future和CompletionStage两个接口,主要用于异步编程。通过它,开发者可以以一种非阻塞的方式编写异步代码,从而提高程序的响应速度和资源利用率。异步执行:CompletableFuture支持在后台线程中异步执行计算或操作,避免阻塞主线......
  • 手动部署第一个 Servlet 案例
       一般不会手动部署应用,这篇文章适合应付学校老师布置的作业一.准备工作   1.首先下载一个Tomcat。   2.打开下载的Tomcat文件夹,可以看到以下文件列表。    主要讲解一下这几个文件夹的作用:    bin:放Tomcat启动、关闭等命令行工......
  • ResizeObserver loop completed with undelivered notifications. 报错
    js使用ResizeObserver时报错,代码实现逻辑如下:functionobserveVideoDom(width:number,height:number){constvideoDom=document.getElementById('videoDom')if(!videoDom)returnif(window.ResizeObserver){//ResizeObserver在iOS13.4及......
  • Educational Codeforces Round 135 (Rated for Div. 2)D. Letter Picking
    注意读题,每次拿完之后是放在开头。所以先手不败,因为最后剩下两个的时候,先手一定可以取较小值。考虑怎样会出现平局?首先已经知道了先手不败,那么对于后手来说,他追求的就是平局,也就是尽可能的保证每一步都都与先手相同。所以,如果是回文串,或者两两相同,或者回文串包两两相同的情况,才......
  • xtop:multi_driven_net与incomplete_timing_cell fail reason 分析
    我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?拾陆楼知识星球入口xtop做时序收敛时报告failreason&#x......
  • MyFlash MySQL数据恢复实战案例:将MySQL Docker容器误删除DELETE的数据进行闪回恢复
    创建MySQL容器mkdir-p{data,conf.d}cat>conf.d/log-bin.cnf<<-EOF[mysqld]log_bin=mysql-binlogserver_id=1EOFdockerrm-fmysqldockerrun-d--namemysql-eMYSQL_ROOT_PASSWORD=123456-p3306:3306-v/etc/localtime:/etc/localtime-v./data:......
  • 兼收并蓄 TypeScript - 基础: var, let, const
    源码https://github.com/webabcd/TypeScriptDemo作者webabcd兼收并蓄TypeScript-基础:var,let,const示例如下:basic\var_let_const.ts//var声明的变量是全局作用域,块外也可用{vara=10;}console.log(a);//let声明的变量是块作用域,仅块内可用{......
  • 【论文阅读笔记】【Hand Pose Estimation-Interacting Hand】 Interacting Two-Hand 3
    ICCV2021读论文思考的问题论文试图解决什么问题?写作背景是什么?问题:如何针对性解决双手手势识别里出现的重度遮挡以及深度交互的问题?背景:由于严重的遮挡和交互特点,先前针对单手手势识别设计的模型不能很好地应用到双手的情景中文章提出了什么样的解决方法?提出......
  • 单例模式 (Singleton Pattern) - 设计模式精讲·面试必备
    前言最近整理了一份设计模式手册:从入门到精通的实用指南。坦白说,我对网上那些过于理论化的教程感到有些失望。于是决定亲自动手,从基础概念到实际应用,把常用的设计模式都梳理了一遍。每种模式不仅包含核心原理,还附带了真实的代码示例,希望能帮助大家更好地理解和运用......
  • 使用 PowerShell 管理 DNS 服务器,你可以执行多种操作,如添加、删除和修改 DNS 记录,以及
    使用PowerShell管理DNS服务器,你可以执行多种操作,如添加、删除和修改DNS记录,以及管理DNS区域。以下是一些常用的cmdlet示例:查看所有DNS区域powershellCopyCodeGet-DnsServerZone添加新的DNS区域powershellCopyCodeAdd-DnsServerPrimaryZone-Name"yourdomai......