javascript – 如果babel将let和const转换为var,有什么区别?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – 如果babel将let和const转换为var,有什么区别?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1093字,纯文字阅读大概需要2分钟。
内容图文
我试过the babel transpiler,它将All let,const和var转换为var,所以总的来说,我们的代码使用有什么不同?
我已经读过文件了,我知道let,const和var之间的区别是什么,但是如果所有这些文件最终转换为var,那有什么区别?这意味着在性能甚至范围上不应该有任何有意义的差异!
更新(02.14.2019):根据我的理解,范围确实很重要,即使它们被转换为var,babel仍保留范围的含义.我的问题仍然是性能,是否有任何有意义的性能差异?
我已经附加了转换器的输入和输出,具有更复杂的场景
输入:
let a = 1;
for (let a = 0; a !== 0;) {
for (let a = 0; a !== 0;) {}
}
产量
"use strict";
var a = 1;
for (var _a = 0; _a !== 0;) {
for (var _a2 = 0; _a2 !== 0;) {}
}
解决方法:
Babel将ES6语法转换为ES5语法(或者您正在处理的JS的任何源和目标版本).
这通常会丢失代码中的一些细微差别,但您正在寻找一个非常简单的例子.
请考虑一下:
let x = 1;
{
// Inside a block, this is a different x
let x = 2;
console.log(x);
}
console.log(x);
Babel会将其转换为:
"use strict";
var x = 1;
{
// Inside a block, this is a different x
var _x = 2;
console.log(_x);
}
console.log(x);
看看它如何重命名内部x,以便它不会覆盖外部x?
它尽可能地表达了ES6在ES5中的效果,即使结果很难看(因为ES6的优雅功能不可用).
内容总结
以上是互联网集市为您收集整理的javascript – 如果babel将let和const转换为var,有什么区别?全部内容,希望文章能够帮你解决javascript – 如果babel将let和const转换为var,有什么区别?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。