我想编写一个程序来删除javascript程序中<{1>}的所有声明自动。对于像
这样的陈述let
我正在考虑使用立即函数来删除function a(){
"use strict"
var a=1,b=1;
if(true){
let a=2;
var b=2;
var c=a+b;
let d=a+b;
}
alert(a);
alert(b);
alert(c);
alert(d);
}
a();
let
function a(){
"use strict"
var a=1,b=1;
if(true){
(function(){
let a=2;
var b=2;
var c=a+b;
let d=a+b;
})()
}
alert(a);
alert(b);
alert(c);
alert(d);
}
a();
的范围可能是正确的,但let
的范围会变得不正确。
对此有何建议?
答案 0 :(得分:1)
我建议你在立即调用的函数表达式之前声明你的变量,如下所示:
function a(){
"use strict"
var a=1, b=1, c;
if(true){
(function(){
let a=2;
b=2;
c=a+b;
let d=a+b;
})();
}
alert(a);
alert(b);
alert(c);
alert(d);
}
a();