検索
ホームページウェブフロントエンドjsチュートリアルjavascript_javascript スキルに基づく補足の string.format 関数

Andrew の元の記事をもう一度読み直してみたところ、元の記事の下にあるコメントで、同じく怠惰な Lou Zhu がすでに元の記事をそのままコピーして返信していることに気づきました。また、Array.prototype.slice に注意すべき点が 1 つありました。
以下は統一的な説明です:

1. string.format のパラメータの数
Andrew の原文では、すでに誰かが指摘しています:

eric d. こんにちは、素晴らしい記事をありがとう。
注: new RegExp("%([1-" argument.length "])", "g"); 9 個の引数を渡すと失敗します (正規表現は "%([1-10])" になるため、%0 と %1 のみに一致します)。

簡単な修正は次のようなものになると思います。 >関数形式 (文字列) { var args = 引数; var pattern = new RegExp("%([0-9] )", "g"); return String(string).replace(pattern, function(match,index) { if (インデックス == 0 || インデックス >= args.length) throw "フォーマット文字列のインデックスが無効です"; return args[index] });例と簡潔さが主な目的ですが、これは素晴らしい機能です)

投稿日: 2009 年 1 月 20 日、午前 12:01

メッセージを残した男性は作者に十分な情報を提供しました「これは単なる一例であり、簡潔さが主な目的であることは理解していますが、これは素晴らしい機能です。」元の記事で定義されている正規表現で検証できる数値の範囲は…ということで、ははは、ルー・ジューは罪悪感を持って微笑んだ。


2. Array.prototype.slice
引数を Array に変換するメソッドは Array.prototype.slice.call(arguments);、つまりクラスを使用します。配列オブジェクトはスライスを通じて Array に変換できます。配列のようなオブジェクトの変換に関しては、Array のプロトタイプ メソッドのスライスを再記録して要約する必要があります。
(1)、一般的な使用法
Lou Zhu は、以前の記事でコードの一部を使用してスライス メソッドを紹介しました。slice(start, end): 配列オブジェクトのサブセットを返します。インデックスは start から始まります Start ( start を含む) と end at end (end を除く) は影響を受けません。実際、配列変数はスライス関数内で定義され、ループを通じて配列の対応するインデックス値が変数にプッシュされ、最終的に配列変数が返されると大胆に推測できます。
(2)、「配列ではありません。私たちも配列になりたいのです。」
これは配列ではありませんが、引数などのインデックスに基づいて値を評価できる長さ属性があります。この記事の配列は実数配列に変換できます:



関数 test() {
var args = Array.prototype.slice.call(arguments);
alert(args.length); // Push
args.push("wong ");
alert(args.length); //2
alert(args.pop()); //pop
alert(args.length); ; //1
}
test();


プッシュメソッドとポップメソッドの両方が機能することがわかります。同様に、Nodelist にも同様の機能があります。 NodeList を Array に変換するにはどうすればよいですか? Louzhu の元の記事を読んだ読者は、これはすべて決まり文句だと思うかもしれませんが、IE では Array.prototype.slice.call(nodelist) は当てはまりません。最後に、NodeList の変換について再度投稿します。そして、IE および他のブラウザと互換性のある方法でこの記事は終了します:


コードをコピー コードは次のとおりです。 var nodelist =something;//NodeList 変数
var arr = null; //Array
try { //ie
arr = new Array(); >for (var i = 0; i arr.push(nodelist[i])
}
} catch (e) {//その他のブラウザ
arr = Array.prototype.slice .call(nodelist);


著者: Jeff Wong
声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
JavaScriptの役割:WebをインタラクティブでダイナミックにするJavaScriptの役割:WebをインタラクティブでダイナミックにするApr 24, 2025 am 12:12 AM

JavaScriptは、Webページのインタラクティブ性とダイナミズムを向上させるため、現代のWebサイトの中心にあります。 1)ページを更新せずにコンテンツを変更できます。2)Domapiを介してWebページを操作する、3)アニメーションやドラッグアンドドロップなどの複雑なインタラクティブ効果、4)ユーザーエクスペリエンスを改善するためのパフォーマンスとベストプラクティスを最適化します。

CおよびJavaScript:接続が説明しましたCおよびJavaScript:接続が説明しましたApr 23, 2025 am 12:07 AM

CおよびJavaScriptは、WebAssemblyを介して相互運用性を実現します。 1)CコードはWebAssemblyモジュールにコンパイルされ、JavaScript環境に導入され、コンピューティングパワーが強化されます。 2)ゲーム開発では、Cは物理エンジンとグラフィックスレンダリングを処理し、JavaScriptはゲームロジックとユーザーインターフェイスを担当します。

Webサイトからアプリまで:JavaScriptの多様なアプリケーションWebサイトからアプリまで:JavaScriptの多様なアプリケーションApr 22, 2025 am 12:02 AM

JavaScriptは、Webサイト、モバイルアプリケーション、デスクトップアプリケーション、サーバー側のプログラミングで広く使用されています。 1)Webサイト開発では、JavaScriptはHTMLおよびCSSと一緒にDOMを運用して、JQueryやReactなどのフレームワークをサポートします。 2)ReactNativeおよびIonicを通じて、JavaScriptはクロスプラットフォームモバイルアプリケーションを開発するために使用されます。 3)電子フレームワークにより、JavaScriptはデスクトップアプリケーションを構築できます。 4)node.jsを使用すると、JavaScriptがサーバー側で実行され、高い並行リクエストをサポートします。

Python vs. JavaScript:ユースケースとアプリケーションと比較されますPython vs. JavaScript:ユースケースとアプリケーションと比較されますApr 21, 2025 am 12:01 AM

Pythonはデータサイエンスと自動化により適していますが、JavaScriptはフロントエンドとフルスタックの開発により適しています。 1. Pythonは、データ処理とモデリングのためにNumpyやPandasなどのライブラリを使用して、データサイエンスと機械学習でうまく機能します。 2。Pythonは、自動化とスクリプトにおいて簡潔で効率的です。 3. JavaScriptはフロントエンド開発に不可欠であり、動的なWebページと単一ページアプリケーションの構築に使用されます。 4. JavaScriptは、node.jsを通じてバックエンド開発において役割を果たし、フルスタック開発をサポートします。

JavaScript通訳者とコンパイラにおけるC/Cの役割JavaScript通訳者とコンパイラにおけるC/Cの役割Apr 20, 2025 am 12:01 AM

CとCは、主に通訳者とJITコンパイラを実装するために使用されるJavaScriptエンジンで重要な役割を果たします。 1)cは、JavaScriptソースコードを解析し、抽象的な構文ツリーを生成するために使用されます。 2)Cは、Bytecodeの生成と実行を担当します。 3)Cは、JITコンパイラを実装し、実行時にホットスポットコードを最適化およびコンパイルし、JavaScriptの実行効率を大幅に改善します。

JavaScript in Action:実際の例とプロジェクトJavaScript in Action:実際の例とプロジェクトApr 19, 2025 am 12:13 AM

現実世界でのJavaScriptのアプリケーションには、フロントエンドとバックエンドの開発が含まれます。 1)DOM操作とイベント処理を含むTODOリストアプリケーションを構築して、フロントエンドアプリケーションを表示します。 2)node.jsを介してRestfulapiを構築し、バックエンドアプリケーションをデモンストレーションします。

JavaScriptとWeb:コア機能とユースケースJavaScriptとWeb:コア機能とユースケースApr 18, 2025 am 12:19 AM

Web開発におけるJavaScriptの主な用途には、クライアントの相互作用、フォーム検証、非同期通信が含まれます。 1)DOM操作による動的なコンテンツの更新とユーザーインタラクション。 2)ユーザーエクスペリエンスを改善するためにデータを提出する前に、クライアントの検証が実行されます。 3)サーバーとのリフレッシュレス通信は、AJAXテクノロジーを通じて達成されます。

JavaScriptエンジンの理解:実装の詳細JavaScriptエンジンの理解:実装の詳細Apr 17, 2025 am 12:05 AM

JavaScriptエンジンが内部的にどのように機能するかを理解することは、開発者にとってより効率的なコードの作成とパフォーマンスのボトルネックと最適化戦略の理解に役立つためです。 1)エンジンのワークフローには、3つの段階が含まれます。解析、コンパイル、実行。 2)実行プロセス中、エンジンはインラインキャッシュや非表示クラスなどの動的最適化を実行します。 3)ベストプラクティスには、グローバル変数の避け、ループの最適化、constとletsの使用、閉鎖の過度の使用の回避が含まれます。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール