当前位置: 首页 > news >正文

let const 与var的区别

1、let可以形成块级作用域,在es6之前javascript只有函数作用域,没有块级作用域。在es6之前实现块级作用域:
在这里插入图片描述
在这里插入图片描述
2、可以看到通过一个立即执行函数表达式,我们实现了一个局部作用域或者块级作用域,但是有了let之后就不需要写这样的代码了,代码修改如下。
在这里插入图片描述
3、执行结果: 可以看到两者实现的效果是一样的。
在这里插入图片描述

4、下面看一道经典面试题:

在这里插入图片描述
5、执行结果为:每隔200ms依次打印5,一共打印5次。

在这里插入图片描述
6、依次输出0,1,2,3,4

7、let可以生成局部作用域
在这里插入图片描述
8、执行结果为: 依次输出0,1,2,3,4
在这里插入图片描述
原因就在于for循环每次执行都是一个独立块作用域,而用let声明的变量传到for循环体的作用域后,不会发生变化,不受外界影响

9、const是用来定义常量的,常量定义之后是不允许改变的。看代码:
在这里插入图片描述
在这里插入图片描述
10、错误提示为:Uncaught TypeError: Assignment to constant variable.意思是常量已经赋值了
在这里插入图片描述
11、执行结果为: 错误提示为:Uncaught SyntaxError: Missing initializer in const declaration。意思是缺少初识值。
在这里插入图片描述

http://www.lryc.cn/news/247598.html

相关文章:

  • git 把项目托管到码云
  • sCrypt 现已支持各类主流前端框架
  • leetcode:2549. 统计桌面上的不同数字(python3解法)
  • 数据结构 / day03作业
  • 异步爬虫提速实践-在Scrapy中使用Aiohttp/Trio
  • Python与设计模式--访问者模式
  • 为社会做贡献的EasyDarwin 4.0.1发布了,支持视频点播、文件直播、摄像机直播、直播录像、直播回放、录像MP4合成下载
  • CG向量和矩阵元素的获取
  • 牛客 算法题 golang语言实现
  • 鸿蒙开发报错:agconnect sdk not initialized. please call initialize()【BUG已解决】
  • 极智芯 | 解读国产AI算力算能产品矩阵
  • docker介绍、部署与常用命令
  • windows定时任务命令工具schtasks
  • 多个nginx共享值、缓存问题
  • 【2023传智杯】第六届传智杯程序设计挑战赛AB组-DEF题解题分析详解【JavaPythonC++解题笔记】
  • Spark---SparkCore(五)
  • k8s中pod的hostport端口突然无法访问故障处理
  • 高德开始“跑腿”
  • Notion for Mac:打造您的专属多功能办公笔记软件
  • pip 安装软件出现 [No space left on device]
  • 【算法刷题】Day8
  • 基于单片机的智能饮水机控制系统(论文+源码)
  • 电脑格式化了怎么恢复原来的数据?您可以这样做
  • mysql 性能排查
  • SpringBoot+网易邮箱登录注册
  • SQL Server对象类型(7)——4.7.触发器(Trigger)
  • 让@RefreshScope注解来帮助我们实现动态刷新
  • c++ opencv使用drawKeypoints、line实现特征点的连线显示
  • Ruoyi-cloud / 若依 SpringCloud服务器部署
  • Java面试题09