CodeGym /コース /Frontend SELF JA /JavaScriptの特別な型

JavaScriptの特別な型

Frontend SELF JA
レベル 35 , レッスン 1
使用可能

2.1 変数は参照

JavaScriptでは変数はオブジェクトの参照を表し、変数そのものではないんだよ。つまり、JavaScriptで変数を作成すると、単にメモリ内のオブジェクトへの参照を作成するだけなんだ。

この言語の特徴は変数を扱う際、特にオブジェクトを関数に渡したり、他の変数に代入したりするときに重要な影響を与えるよ。

変数を作成して値を代入すると、JavaScriptはその値のためにメモリ内にオブジェクトを確保し、変数をそのオブジェクトへの参照にするんだ。一つの変数を別の変数に代入すると、新しい変数は元の変数と同じオブジェクトを指すことになる。つまり、もしオブジェクトが可変であれば、一つの変数を通じて行われた変更はもう一つの変数にも反映されるんだ。

例:

JavaScript
    
      let a = [1, 2, 3];
      let b = a;

      b.push(4);
      console.log(a);  // 出力されるのは: [1, 2, 3, 4]
    
  

変数 b に4を追加したけど、その結果は変数 a のリストにも追加されたんだ。なぜなら、実際にはどちらの変数もリストオブジェクト [1, 2, 3] への参照に過ぎないからなんだ。

2.2 undefined型

JavaScriptには2つの特別なデータ型があるよ: nullundefined。これらの型は類似しているため、開発者にとっては時に混乱を招くけど、それぞれ異なる目的があって、様々な場面で使われるよ。詳しく見てみよう。

undefined型

undefined型は、宣言されたけど初期化されていない変数の値を表すんだ。この値は、存在しないオブジェクトのプロパティや存在しない配列の要素にアクセスしたときにも返されるよ。

1. 未初期化の変数:

JavaScript
    
      let x;
      console.log(x); // undefined
    
  

2. 存在しないオブジェクトのプロパティ:

JavaScript
    
      let obj = {};
      console.log(obj.property); // undefined
    
  

3. 存在しない配列の要素:

JavaScript
    
      let array = [1, 2, 3];
      console.log(array[5]); // undefined
    
  

4. 関数の欠落引数:

JavaScript
    
      function myFunction(a, b) {
        console.log(b); // undefined, myFunction(1)と呼ばれた場合
      }
      myFunction(1);
    
  

undefinedの特性:

  • undefinedはデータ型でもあり値でもある
  • typeof undefinedundefinedを返す

2.3 null型

null型は意図的に値がないことを表すんだ。この値は、後でオブジェクトを代入する予定の変数を初期化するときや、変数の値をクリアするときによく使われるよ。

1. 変数の初期化:

JavaScript
    
      let obj = null;
      console.log(obj); // null
    
  

2. 変数の値のクリア:

JavaScript
    
      let user = { name: "Alice" };
      user = null; // userはもうオブジェクトを指していない
    
  

nullの特性:

  • nullは意図的に値がないことを表す値なんだ
  • typeof nullobjectを返すけど、これはJavaScriptの認識されたエラーだよ(実際にはnullはオブジェクトじゃない)

2.4 nullとundefinedの比較

nullundefinedはどちらも値がないことを示すために使えるけど、目的や使われるコンテキストが異なるんだよ。

特性 null undefined
プリミティブ型 プリミティブ型
目的 意図的に値がない 未初期化の変数
使用法 変数の初期化、値をクリア 存在しないプロパティ、配列の要素
デフォルトの値 いいえ はい(未初期化の変数、関数のパラメータに対する)

使用例

1. オブジェクトや配列で変数を初期化:

JavaScript
    
      let myObject = null;
      let myArray = null;
    
  

2. 値の確認:

JavaScript
    
      let value;

      if (value === undefined) {
        console.log("変数は未初期化です。");
      }

      let result = null;

      if (result === null) {
        console.log("値が存在しません。");
      }
    
  

3. 値のクリア:

JavaScript
    
      let person = { name: "Alice" };
      person = null; // もうpersonはオブジェクトを指していない
    
  

4. プロパティの存在確認:

JavaScript
    
      let obj = {};

      if (obj.property === undefined) {
        console.log("プロパティは存在しません。");
      }
    
  

JavaScriptでnullundefinedの違いを理解することは、値を適切に管理し、コードのエラーを防ぐために重要だよ。

undefinedは通常未初期化の変数や欠落したプロパティを示し、nullは意図的に値がないことを示すために使われるんだ。

これらの特別なデータ型を正しく使うことで、コードはもっと理解しやすくて予測可能になるんだよ。

コメント
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION