CodeGym /Javaコース /Frontend SELF JA /JavaScriptの変数とデータ型

JavaScriptの変数とデータ型

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

2.1 JavaScriptの変数

JavaScriptは柔軟でダイナミックなプログラミング言語で、変数の宣言やデータ型の操作に様々な方法をサポートしています。この講義では、変数の宣言方法(varletconst)とJavaScriptの基本的なプリミティブデータ型を見ていきます。

JavaScriptの変数

JavaScriptは動的型付けの言語です。変数は型を持ちません。どの変数にもいつでも好きな値を代入できます(ただし、細かい点はあります)。

変数を作成するには、次のように書きます:

    
      var name;
    
  

変数にはすぐに値を代入することもできます:

    
      var name = value;
    
  

でも、実際にはJavaScriptには変数の作成方法が3つもあります。詳しく見てみましょう。

varオペレーター

varで宣言された変数は、関数スコープまたはグローバルスコープを持ちます。これらは「昇順(hoisting)」により影響を受け、コード実行時にその宣言がスコープの上部に移動されます。

例:

JavaScript
    
      console.log(x); // undefined
      var x = 10;
      console.log(x); // 10
    
  

この例では、変数xはスコープの最初に持ち上げられています。そのため、最初のconsole.logundefinedが出力されます。

つまり、「昇順」は私たちのコードを次のように変換します:

JavaScript
    
      var x;
      console.log(x); // undefined
      x = 10;
      console.log(x); // 10
    
  

letオペレーター

開発者たちはvarオペレーターの動作を変えたかったのですが、すでに書かれた数百万行のコードを壊すことを恐れていました。それで彼らは新しいオペレーターを考案し、少し異なる動作で変数を作成することにしました。

letで宣言された変数は、ブロックスコープを持ちます。これは、それらが宣言されたコードブロック(通常は{}で囲まれる)内でのみ利用可能なことを意味します。letは、varのように昇順されません。

例:

変数yifブロック内でのみ存在します。

JavaScript
    
      if (true) {
        let y = 20;
        console.log(y); // 20
      }

      console.log(y); // ReferenceError: y is not defined
    
  

constオペレーター

constで宣言された変数もブロックスコープを持ち、初期化後に再割り当てすることができません。しかし、constで宣言されたオブジェクトが不変になるわけではなく、プロパティを変更できます。

つまり、変数自体は変えられませんが、それが指すオブジェクトは変更可能です。最善を尽くそうとしたら、いつものようにそうはならなかった。

例:

この例では、定数xは再割り当てできませんが、オブジェクトobjは変更可能です。

JavaScript
    
      const x = 30;
      console.log(x); // 30
      x = 40; // TypeError: Assignment to constant variable.

      const obj = { name: 'Alice' };
      obj.name = 'Bob'; // これは許可されます
      console.log(obj.name); // Bob
    
  

2.2 プリミティブデータ型

JavaScriptは、複雑なオブジェクトではないシンプルな値を表すいくつかのプリミティブデータ型をサポートしています。

型 Number

整数や浮動小数点数を含む、任意の数値を表します。

例:

JavaScript
    
      let num = 42;
      let pi = 3.14;
    
  

型 String

テキストデータを表します:文字列、文字、絵文字。文字列のように見えるものはすべてここです。

例:

JavaScript
    
      let greeting = "Hello, world!";
      let facepalm = "🤦";
      let char = 'x';
    
  

型 Boolean

論理値trueまたはfalseを表します。

JavaScript
    
      let isTrue = true;
      let isFalse = false;
    
  

型 Null

意図的な無値を表します。

JavaScript
    
      let empty = null;
    
  

もし型が無値を表す1つの値から成り立つなら、それは本当にユニークなタイプではなくユニークな値かもしれません。

型 Undefined

宣言されたが初期化されていない変数の値を表します。

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

2.3 var、let、constの比較

最後に、変数作成の3つの方法をもう一度比較してみましょう:

特徴 var let const
スコープ 関数またはグローバル ブロック ブロック
昇順(Hoisting) はい、でも初期化は昇順しません いいえ いいえ
再割り当て はい はい いいえ
初期化 任意 任意 必須

JavaScriptはいくつかの方法で変数を宣言できます。それぞれがその文脈に応じた独自の特性と適用性を持っています。varは、昇順とグローバルスコープの特徴から、使用頻度は低くなっています。現代のJavaScriptでは、letconstがブロックスコープと再割り当てのコントロールのための好まれる選択肢です。

プリミティブデータ型は、基本的なデータ構造を操作し、複雑なアプリケーションを構築するために必要な基本機能を提供します。そしてこれは世界で最も人気のある言語です :)

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