私はそれを知ってeval
おり、setTimeout
両方とも(1番目の)パラメーターとして文字列を受け入れることができます。これは使用しない方がよいことを知っています。なぜ違いがあるのか興味があります。
!function() {
var foo = 123;
eval("alert(foo)");
}();
!function() {
var foo = 123;
setTimeout("alert(foo)", 0);
}();
1つ目は機能し、2つ目はエラーになります。foo is not defined
彼らは舞台裏でどのように処刑されていますか?