gpt4 book ai didi

javascript - babel 编译的 ES6 中的 block 作用域

转载 作者:太空宇宙 更新时间:2023-11-03 22:29:24 26 4
gpt4 key购买 nike

我知道在 es6 中这是如何创建 block 作用域的。

'use strict';

{
let account = [1678922, 300450];

let compute = (credit, debit) => {
return credit - debit;
}

console.log(compute(...account));
}

ES5 [这就是我所期望的]

(function(){
var account = [1678922, 300450];

var compute = function compute(credit, debit) {
return credit - debit;
};

console.log(compute.apply(undefined, account));
})();

console.log(user1);

BABEL编译

'use strict';

{
var account = [1678922, 300450];

var compute = function compute(credit, debit) {
return credit - debit;
};

console.log(compute.apply(undefined, account));
}

我想删除编译版本中的全局变量。

问题:

  1. 有什么方法可以不使用任何插件来做到这一点吗?
  2. 如果没有,是否有使用 npm 的插件?

PS:我需要支持古老的浏览器。至少 IE9。

如有任何帮助,我们将不胜感激。谢谢!

最佳答案

来自 babel 编译的示例;评论继续:

编辑:根据您的示例

预编译:

{
let account = [1678922, 300450];

let compute = (credit, debit) => {
return credit - debit;
}

console.log(compute(...account));
}

{
let account = [16789, 3004];

let compute = (credit, debit) => {
return credit - debit;
}

console.log(compute(...account));
}

编译后:

{
var account = [1678922, 300450];

var compute = function compute(credit, debit) {
return credit - debit;
};

console.log(compute.apply(undefined, account));
}

{
var _account = [16789, 3004];

var _compute = function _compute(credit, debit) {
return credit - debit;
};

console.log(_compute.apply(undefined, _account));
}

本质上,这并不重要。 Babel 正在以一种无关紧要的方式智能地编译它,真的。

关于javascript - babel 编译的 ES6 中的 block 作用域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39802537/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com