JavaScript
 Computer >> コンピューター >  >> プログラミング >> JavaScript

【JavaScript】関数の引数がundefinedの場合にデフォルト値を設定する方法

JavaScriptでは、関数に引数を渡す際、値がundefinedになるケースに遭遇することがあります。このような場合に備えてあらかじめデフォルト値を設定しておくことで、意図しない動作やエラーを防ぐことができます。

ここでは、以下のような2つの値を関数に渡すケースを想定します。

300
undefined

デフォルト値を設定するサンプルコード

それでは、引数がundefinedの場合にデフォルト値を代入するコードを見てみましょう。

function showValue(value)
{
   if (value===undefined) {
      value=100000;
   }
   else {
      value=value;
   }
   return value;
} 
console.log("The value="+showValue(300));
console.log("The value="+showValue(undefined));

コードの解説

このコードのポイントは、厳密等価演算子(===)を使って引数がundefinedかどうかを判定している点です。

  • 引数が300の場合: valueundefinedではないため、elseブロックが実行され、そのまま300が返されます。
  • 引数がundefinedの場合: 条件式が真となり、ifブロック内でデフォルト値である100000が代入されます。

プログラムの実行方法

上記のプログラムを実行するには、Node.js環境で次のコマンドを使用します。

node fileName.js

ここでは、ファイル名を「demo246.js」として保存しています。

実行結果

コンソールには以下の出力が表示されます。

PS C:\Users\Amit\javascript-code> node demo246.js
The value=300
The value=100000

1つ目の呼び出しでは引数として300が渡されているため「300」が出力され、2つ目の呼び出しではundefinedが渡されたため、デフォルト値の「100000」が出力されていることが確認できます。

補足:ES6のデフォルトパラメータを使うとさらに簡潔

なお、ES6(ECMAScript 2015)以降では、デフォルトパラメータ構文を使うことで、同じ処理をより簡潔に書くことができます。

function showValue(value = 100000) {
   return value;
}
console.log(showValue(300));      // 300
console.log(showValue(undefined)); // 100000

仮引数に初期値を直接指定するだけで、undefinedが渡された場合に自動的にデフォルト値が適用されます。モダンなJavaScript開発では、こちらの書き方が一般的に推奨されています。

  1. JavaScriptでHTMLのH1要素のテキストを変数に取得する方法

    HTML内の <h1> 要素のテキストをJavaScriptの変数に格納したい場合は、document.getElementById() と innerHTML を組み合わせて使用するのが基本です。 H1の値を取得する基本的な方法 document.getElementById(id名).innerHTML と記述することで、指定したIDを持つ要素の内容(テキスト)を取得できます。 例として、次のようなH1見出しがHTMLにあると仮定しましょう。 <h1 id=demo>これはJavaScriptのデモプログラムです……</h1> このH1の値を取得するには

  2. 【JavaScript】変数に関数を代入して呼び出す方法

    JavaScriptでは、関数を変数に代入することができます(これを「関数式」と呼びます)。さらに、return文を使うことで、変数に代入した関数の処理結果を呼び出し元に返すことも可能です。以下の例では、無名関数を変数 studentNames に代入し、その内部で jQuery の each() メソッドを使って各要素の data-st 属性の値を配列に格納しています。最後に return 文で、カンマ区切りに結合した文字列を返しています。コード例<!DOCTYPE html> <html lang="en"> <head> <m