JSに配列を通過する2つの方法があります
コードコピーは次のとおりです。
var array = ['a']
//ループの標準
for(var i = 1; i <array.length; i ++){
アラート(配列[i])
}
// foreachループ
for(var i in array){
アラート(配列[i])
}
通常の状況では、アレイを通過する上記の2つの方法は同じです。まず第一に、2つの最初の違いについて話しましょう
ループの標準のiは数値タイプで、配列の添え字を表しますが、foreachループのiは、JSのすべてがオブジェクトであるため、配列のキーを文字列型で表します。アラートを試してください(typeof i);この違いは小さな問題です。次のコードを追加すると、上記の実行結果が異なります。
コードコピーは次のとおりです。
// JSネイティブアレイを拡張しました
array.prototype.test = function()
}
上記のコードが実行するものを確認してください。ループの標準はまだアレイ上で実際のループがあることがわかりましたが、現時点では、私が書いたばかりのテスト方法からForeachループが印刷されています。これは、アレイを通過するための最大の違いです。プロジェクトでArraysを通過するためにEachを使用する場合、誰かがJSのネイティブ配列クラスを誤って拡張し、外部JSフレームワークを導入してネイティブアレイを拡張する日があるとします。その後、疑問が生じます。
さらに2つのポイントを提案します
1.アレイをトラバースするためにINを使用しないでください。統合でループ変数配列に標準を使用します(導入したJSがプロトタイプを使用してネイティブアレイを拡張するかどうかを保証することはできません)
2。JSのネイティブクラスを拡張したい場合は、プロトタイプを使用しないでください