使用let转换JavaScript到var

时间:2016-01-12 13:11:38

标签: javascript

我想编写一个程序来删除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的范围会变得不正确。

对此有何建议?

1 个答案:

答案 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();