JavaScript で Printf または String.Format の代替

Tahseen Tauseef 2023年10月12日
JavaScript で Printf または String.Format の代替

この記事では、JavaScript での printf または String.Format の代替について説明します。

printf は、CPHPJava などのほとんどのプログラミング言語で使用される関数です。この標準出力関数を使用すると、コンソールに文字列またはステートメントを出力できます。

ただし、JavaScript では printf を使用できないため、その代替手段が必要です。これについては、ここで説明します。それとは別に、出力フォーマットをカスタマイズするためにフォーマット指定子を使用することがあります。

JavaScript で console.log() を使用する

ここでの 1つのオプションは、console.log を使用してコンソールに何かを出力することです。これは ES6 の更新後に利用可能になり、その動作は printf の動作に非常に精通しています。

console.log は非常に簡単で、開発者の間で確かに最も一般的です。JavaScript での console.log の動作を理解するために、次のコードセグメントを見てみましょう。

function example() {
  let i = 5;
  console.log(i);
}
example();

このコードセグメントで let キーワードを使用して変数を宣言し、コンソールに出力しました。したがって、console.log(i) を使用して変数 i の値を取得し、コンソール画面に出力します。

文字列またはランダムなテキストを出力する場合は、次の方法で console.log を使用できます。

function example() {
  console.log('Hello');
}
example();

このコードセグメントでは、ご覧のとおり、console.log を使用して、出力したいテキストを'内に入力しました。JavaScript で console.log を使用して通常のテキストアイテムを出力する方法です。

これは、console.logprintf の最もシンプルで簡単な代替手段であることを示しています。ただし、出力の形式をカスタマイズする場合は、カスタムプロトタイプを作成して、String.Format 機能を作成できます。

例として、次のコードセグメントを見ることができます。

String.prototype.format = function() {
  var args = arguments;
  return this.replace(/{(\d+)}/g, function(match, number) {
    return typeof args[number] != 'undefined' ? args[number] : match;
  });
};
console.log(
    '{0} was used as placeholder, furthermore {1} is used as the second argument {0} {2}'
        .format('C language', 'C sharp'));

このコードセグメントの各 JavaScript 文字列オブジェクトにアタッチされたカスタムプロトタイプ関数を作成しました。format 関数が行うことは、文字列を取得して {} を検索し、その中の数値をそのインデックスで提供される引数に置き換えることです。

したがって、{0}C language に置き換えられ、{1}C sharp に置き換えられます。ただし、{2} プレースホルダーに対して実行する引数を提供していないため、{2} はそのままです。

また、3 番目の引数を指定すると、角かっこ {2} が 3 番目の引数に置き換えられます。カスタムの String.prototype.format 関数を理解するのに役立つかもしれません。

関連記事 - JavaScript String