タイトル 次のステートメントの出力について説明してください:
x = {shift:[].shift};
console.info(x.length); >正解した場合は、配列関数の一般的な応用をすでに理解していることになります。この質問を理解する前に、まず配列 (Array) のシフトの定義を理解する必要があります。
関連する手順は MDC で非常に明確に説明されています
コードをコピー
コード シフトは意図的に汎用的です。このメソッドは、配列に似たオブジェクトに呼び出したり、系列の最後を反映する長さプロパティを含まないオブジェクトに適用したりできます。
連続するゼロベースの数値プロパティは、意味のある方法で動作しない可能性があります
同時に、EMCAScript の定義では、長さプロパティの変更も定義されます。シフト操作のオブジェクト したがって、基本的に、上記の質問に対する答えは
であると理解できます。 コードをコピーします
上記の質問がまだ理解できない場合は、Array.prototype の影響をより明確に説明できます。オブジェクトの長さを変更します。
コードをコピーします明らかに、オブジェクトに length 属性が定義されている場合、shift は自動的に length 属性を追加します。そしてそれを 0 に設定します。
ここまで述べたところで、次の質問で何を出力するかは皆さんに考えてもらいましょう。
コードをコピー
コードは次のとおりです。
明らかに、上記の質問はこの記事のタイトルはまだ説明できないかもしれません。汎用アプリケーションについては以前にも説明しましたが、ここでは主に「配列のような」操作のための Array メソッドの使用について説明します。
強制的に配列
コードをコピー
コードは次のとおりです:
データの反復
コードのコピー
コードは次のとおりです: Array.prototype.forEach.call(arguments, function(i) { console.info(i); }); オブジェクトがrecursed, then exit 「従来の」for ステートメント、while ステートメント、およびその他のステートメントに加えて、Array の forEach 属性の使用を検討することもできます (IE では悲劇が起きることに注意してください)。 Array の forEach メソッドについては、ここで詳しく説明します。
その他の Array 拡張機能を使用すると、独自のアイデアを広げることができます。対応するブラウザに対応する Array の実装方法がない場合は、こちらを参照してください。
実際、Array メソッドだけでなく、多くのブラウザー ネイティブ オブジェクトのメソッドも、これらの機能を完全に使用してコードを明確にすることができます。
ネイティブ メソッドを使用する方が効率的です。