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

typescript-var和let作用域

什么是作用域?

作用域可以理解为某个变量在某个范围内是可以访问到。

var是函数作用域(声明的函数内)、全局作用域(在哪里都可以访问到)

let是块级作用域(即程序中的大括号{}包含的范围内)

看下面的例子:

console.log("---------------------"); { var c = 100; } console.log(c); { let c = 10; console.log("block area ", c); } console.log(c); console.log("======================");

看以上示例中输出的两个100都是输出的var声明的变量c,因为var声明的是函数作用域或全局作用域(在这里是全局的),所以输出发的时候是100;

而let声明的是块级作用域,即只在大括号内有效{},所以只有在大括号内输出的才是10,即使大括号外有输出这个变量,也不能输出这个块里面的值。

再看下面的例子:

function test() { for (var i = 0; i < 10; i++) { setTimeout(() => { console.log(i); }, 0); } } test(); function test1() { for (var i = 0; i < 10; i++) { (function (index) { setTimeout(function () { console.log(index); }, 0); })(i); } } test1(); function test2() { for (let i = 0; i < 10; i++) { setTimeout(() => { console.log(i); }, 0); } } test2();

这个有点绕,

test函数中使用的是var,是函数作用域,而setTimeout是异步函数,for的循环执行完了(这里是同步执行的),最后i变成了10,而setTimeout会在同步函数后执行,所以最后输出了函数作用域内的变量i,即10.

test1函数中也是使用的var,但是输出正常,这里有一个区别是使用了立即执行函数,即内部有一个function,这里把var的参数传给了index,而index是在这个内部函数作用域内有效,这个在书面上理解为捕获了i的值。即把i的值给了index,index是函数作用域内的,异步setTimeout执行的时候 ,输出了内部函数中的index的值。(这个是我个人的理解啊,有误差的大家可以指正)

test2函数中使用的是let,这个是块级作用域,即{}捕获了i的值。可以避免var声明引起的问题。在未来的工作中要尽量使用let。避免出现上面说的问题。

http://www.jsqmd.com/news/206490/

相关文章:

  • 2026年香港服务器走CN2线路具有哪些优势?
  • 2026年香港服务器走CN2线路具有哪些优势?
  • 都在做「WAN优化」,南凌科技的方案究竟有何不同?
  • 香港服务器为何需要IPMI?好用吗
  • 彻底解决启动问题:如何修复错误代码0xc000000e一站式教程
  • 云原生ETL方案:AWS Glue vs Azure Data Factory
  • 免费听书神器喜马拉雅v9.4.32.3精简版分享 解锁付费内容 无限畅听
  • 牛批了,Windows搬家神器
  • FTP登陆工具SmartFTP Client Enterprise v10.0.3300 多语便携版下载 FTP文件传输神器
  • Katalon StudioAssist Ask模式:工作区内的AI测试助手
  • 如何打开大文件不崩溃不卡顿?EmEditor v25.4.4绿色便携版下载
  • 敏捷的质量合伙人
  • php+nginx在cookie中设置了HttpOnly属性
  • 2026必备!本科生论文写作软件TOP9测评
  • 黑马反弹抄底之短炒选股指标公式
  • NVIDIA Rubin平台重磅亮相CES:六芯协同重塑AI算力,2026下半年量产落地
  • 基于SpringBoot的车辆报废回收系统(源码+lw+部署文档+讲解等)
  • 人工智能之核心基础 机器学习 第八章 无监督学习概述
  • 全新网址二维码与Ai文字转语音技术,助力电子画册轻松生成
  • 学长亲荐8个一键生成论文工具,自考毕业论文轻松搞定!
  • 基于SpringBoot的传统手工艺文化展示平台的设计与实现(源码+lw+部署文档+讲解等)
  • 中小企业服务器托管哪家好?尚航科技综合实力解析
  • 如何快速生成说明书二维码和音频二维码?
  • 主力上班之选股指标公式
  • 大型企业服务器托管选型指南:尚航科技的综合优势与适用场景分析
  • 必看!2026年企业宣传二维码推荐,解锁协同操作与录音转二维码的全新体验
  • 基于SpringBoot的宠物服务系统(源码+lw+部署文档+讲解等)
  • 第二届工程管理与安全工程国际学术会议 (EMSE 2026)
  • 基于SpringBoot的宠物领养管理系统(源码+lw+部署文档+讲解等)
  • 通达信主力上班指标公式