私はこれを見ました:http://www.youtube.com/watch?v=mHtdZgou0qU昨日、私は自分のJavaScriptを改善する方法について考えてきました。私はfirefoxで本当に不安定に見えるアニメーションを書き直すときに、彼が気にしていたことをすべて守ろうとしています。forループはJavascriptのスコープチェーンに別のオブジェクトを追加しますか?
for
ループがスコープチェーンに追加されていると私が思っていることの1つです。 Zakasはクロージャがどのようにスコープチェーンに追加されるかについて多くのことを話し、ローカルスコープ外の変数へのアクセスは時間がかかる傾向があります。 for
ループでは、最初のステートメントで変数を宣言できます。これはチェーンに別のスコープを追加していることを意味しますか?私は、Zakasもdo-while
、while
、そしてfor
のループの間に違いがないと言っていたので、私は仮定しませんでした。
私は、多くの場合、JSライブラリで、見るので、私が尋ねる理由の一部である、のようなコード:
function foo(){
var x=window.bar,
i=0,
len=x.length;
for(;i<len;i++){
//
}
}
for
ループはチェーンに別のオブジェクトを追加しました場合は、これは非常に非効率的なコードになります、なぜならループ内のすべての操作(i
を使用していると仮定)は、範囲外の変数にアクセスしています。
また、私はそれに賭けるように頼まれた場合、私はそうではないと言いますが、使用される変数はループ外でアクセスできないのでしょうか?
'for'ループ内で宣言された変数は、とにかく吊り上げられるので、明示的に宣言する理由はありません。 –