function func1(str) {
eval(str);
newVar = 100;
function func2() {
console.log(bar);
console.log(newVar);
}
func2();
}
func1("bar = 42;");
eval() キーワードはレキシカル スコープをだますため (コードの実行が遅くなる)、避けるべきであると読みました。上記の例 (または誰かが持っている他の例) のコンテキストで、これがどのような種類のコンパイラの最適化を壊す可能性があるかを理解しようとしています。
行 newVar = 100; を見ると、この変数も、実行フェーズ中にエンジンによって (グローバル スコープで) 作成されます。これがレキシカルスコープを「ごまかす」ことになるとは思いません。次に、本質的に同様のことを行う eval("bar = 42;") の問題は何ですか? 質問が明確であることを願っています。