JavaScript 配列トラバーサル for スキルと in_javascript スキルの違いの詳細な説明

WBOY
リリース: 2016-05-16 16:29:18
オリジナル
1476 人が閲覧しました

js で配列を走査するには 2 つの方法があります

コードをコピーします コードは次のとおりです:

var array=['a']
//標準 for ループ
for(var i=1;i アラート(配列[i])
}
//foreach ループ
for(配列内の変数 i){
アラート(配列[i])
}

通常の状況では、配列を走査する上記の 2 つの方法の結果は同じです。まず、この 2 つの最初の違いについて話しましょう

標準の for ループの i は配列の添字を表す数値型ですが、js 内のすべてがオブジェクトであるため、foreach ループの i は配列のキーの型が文字列であることを表します。自分で試してみてください。次のコードを追加すると、上記の実行結果は異なります。

コードをコピーします コードは次のとおりです:

//拡張された js ネイティブ配列
Array.prototype.test=function()

}

試してみて、上記のコードが何を行うかを確認してください。標準の for ループは実際に配列をループしていることがわかりましたが、この時点では、foreach ループは先ほど作成したテスト メソッドを出力します。これが、配列を走査するための for と foreach の最大の違いです。プロジェクト内の配列を走査するために foreach を使用する場合、ある日、誰かが誤って js のネイティブ Array クラスを拡張したり、外部の js フレームワークを導入してネイティブ クラスも拡張したとします。配列。 。次に問題が発生します。

さらに 2 つの提案

1. 配列を走査するために for in を使用せず、標準の for ループ変数配列を使用します (導入する JS がプロトタイプを使用してネイティブ配列を拡張するかどうかは保証できません)
2. js のネイティブ クラスを拡張したい場合は、プロトタイプ

を使用しないでください。
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート