typescipt-var变量提升

变量提升

新建一个index.ts,并输出以下内容

TypeScript 复制代码
console.log("------ start");
console.log(c);
console.log(d);
console.log("------ end");
var c = 100;
let d = 99;
console.log("****** start");
console.log(c);
console.log(d);
console.log("****** end");

打开控制台编译

TypeScript 复制代码
tsc index.ts
TypeScript 复制代码
console.log("------ start");
console.log(c);

console.log("------ end");
var c = 100;

console.log("****** start");
console.log(c);

console.log("****** end");

重新编译

TypeScript 复制代码
tsc index.ts

查看生成的index.js文件

TypeScript 复制代码
console.log("------ start");
console.log(c);
console.log("------ end");
var c = 100;
console.log("****** start");
console.log(c);
console.log("****** end");

新建一个html文件并引入这个生成的js文件

查看浏览器控制台的输出

可以看到在var之前进行console.log是可以输出的,只不过值是undefined,因为var声明的变量会提升到当前作用域的顶部,而let声明的会在编译的时候报错!

相关推荐
牛奔9 小时前
Go 如何避免频繁抢占?
开发语言·后端·golang
寻星探路13 小时前
【深度长文】万字攻克网络原理:从 HTTP 报文解构到 HTTPS 终极加密逻辑
java·开发语言·网络·python·http·ai·https
崔庆才丨静觅14 小时前
hCaptcha 验证码图像识别 API 对接教程
前端
lly20240614 小时前
Bootstrap 警告框
开发语言
2601_9491465315 小时前
C语言语音通知接口接入教程:如何使用C语言直接调用语音预警API
c语言·开发语言
曹牧15 小时前
Spring Boot:如何测试Java Controller中的POST请求?
java·开发语言
passerby606115 小时前
完成前端时间处理的另一块版图
前端·github·web components
KYGALYX15 小时前
服务异步通信
开发语言·后端·微服务·ruby
掘了15 小时前
「2025 年终总结」在所有失去的人中,我最怀念我自己
前端·后端·年终总结
zmzb010315 小时前
C++课后习题训练记录Day98
开发语言·c++