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

JavaScriptで変数が未定義(undefined)かどうかを判定する方法

JavaScriptでは、if文などの条件式に変数をそのまま渡すことで、その変数が定義されているかどうか(値が存在するかどうか)を簡単にチェックできます。条件の結果が「false」になれば、変数は未定義(undefined)または空の状態であることを意味します。逆に「true」が返れば、変数には有効な値が代入されています。

サンプルコード

以下は、変数 points の値を if 文で判定するシンプルな例です。

<html>
<body>
<script>
var points = 100;

if(points){
   document.write("True");
}else{
   document.write("False");
}
</script>
</body>
</html>

実行結果

この例では、変数 points に「100」という値が代入されているため、条件式は「true」と評価され、画面には「True」と表示されます。もし変数が未定義だった場合、条件式は「false」となり、「False」が出力されます。

typeof演算子を使ったより厳密な判定

より確実に未定義かどうかを確認したい場合は、typeof 演算子を使う方法が推奨されます。typeof は、変数が宣言されていなくてもエラーにならず、文字列 "undefined" を返します。

<script>
var points;

if(typeof points === "undefined"){
   document.write("変数は未定義です");
}else{
   document.write("変数は定義されています");
}
</script>

注意点

単純な if 文による判定では、値が 0null""(空文字列)の場合も「false」と評価されるため注意が必要です。これらの値と「未定義」を区別したい場合は、typeof 演算子や === 演算子を使った厳密な比較を行うようにしましょう。

  1. JavaScriptでオブジェクトが配列かどうかを判定する方法【Array.isArray()など】

    JavaScriptでは、ある値が配列(Array)であるかどうかを確認する方法がいくつか存在します。この記事では、代表的な判定方法とそれぞれの特徴・注意点について、サンプルコード付きでわかりやすく解説します。 1. Array.isArray() を使う方法(推奨) Array.isArray() は ES5(ECMAScript 5)で導入された標準メソッドで、すべてのモダンブラウザでサポートされています。引数が配列であれば true、それ以外は false を返します。シンプルかつ確実に動作するため、特別な理由がない限りこの方法を使うのがおすすめです。 サンプルコード console

  2. JavaScriptでドキュメントの読み込み状態(readyState)を確認する方法

    JavaScriptでドキュメント(ページ)の読み込みが完了しているかどうかを確認するには、document.readyStateプロパティを使用します。このプロパティは、現在のドキュメントの読み込み状況に応じて以下の3つの文字列を返します。loading … ドキュメントがまだ読み込み中の状態interactive … ドキュメントの解析は完了したが、画像などのサブリソースは still 読み込み中の状態complete … ドキュメントとすべてのサブリソースの読み込みが完了した状態以下は、ボタンをクリックしたタイミングでdocument.readyStateの値を判定し、ページの読み込み状