JavaScript基礎(2)~JavaScript 基本構文とデータ型~

JavaScriptは、ウェブ開発において最も重要なプログラミング言語の一つであり、フロントエンドやバックエンドで幅広く活用されています。

本カリキュラムでは、JavaScriptの基礎となる「基本構文」と「データ型」に焦点を当て、言語の仕組みを正確に理解するための基礎を学びます。

特に変数の宣言方法やデータ型の扱い方をしっかりと身につけることで、より効率的でエラーの少ないコードを書く力を養います。

1. コンソールでのコード実行

ブラウザの開発者ツール紹介

開発者ツール(DevTools)は、モダンなブラウザ(Google ChromeやFirefoxなど)に標準搭載されている機能で、以下のような用途に役立ちます:

  • HTMLやCSS、JavaScriptのコードをデバッグする。
  • ネットワーク通信状況を確認する。
  • ページのパフォーマンスやエラーを検出する。

今回の焦点は「Console」タブの使い方です。

ここでは、JavaScriptコードを直接入力してその場で実行できるため、プログラミングの学習やテストに非常に便利です。

Chromeでの開発者ツールの開き方

以下の手順でChromeの開発者ツールを開くことができます:

1. キーボードショートカットを使用

  • Windows/Linux: Ctrl + Shift + I
  • Mac: Cmd + Option + I

2. 右クリックメニューを使用

  • Webページの任意の部分を右クリック。
  • メニューから「検証(Inspect)」を選択。

3. メニューバーから開く

  • Chromeの右上にあるメニュー(三点アイコン)をクリック。
  • 「その他のツール」 > 「デベロッパーツール」を選択。

4. 開発者ツールのタブ

  • 開発者ツールが開いたら、上部のタブから「Console」を選択します。

「Console」タブでコードを入力

「Console」タブを使うと、以下のことができます:

  • JavaScriptコードを直接入力して結果を確認。
  • エラーの詳細を確認。
  • デバッグ時に変数の値を確認。

例: 簡単なコードを試してみる

「Console」タブ内で次のコードを入力してEnterキーを押します:

console.log("Hello, JavaScript!");

2. 変数と定数

変数

変数は値を保存し、その値をプログラム内で操作するために使われます。

JavaScriptでは、以下の2つのキーワードを使って変数を宣言します。

1. var

  • 古い形式の変数宣言。

特性:

  • 関数スコープ:
    変数は関数内でのみ有効。それ以外のスコープ(ブロックなど)は無視されます。
  • 再宣言可能:
    同じ名前の変数を再び宣言できます(非推奨)。
  • グローバル汚染のリスクが高い(非推奨理由の一つ)。

:

function testVar() {
  var x = 10;
  if (true) {
    var x = 20; // 同じ変数 x を再宣言
    console.log(x); // 出力: 20
  }
  console.log(x); // 出力: 20
}
testVar();

2. let

• 推奨される変数宣言方法。

特性:

  • ブロックスコープ: 変数は宣言されたブロック内でのみ有効。
  • 再宣言不可: 同じスコープ内で再宣言できません。

:

function testLet() {
  let x = 10;
  if (true) {
    let x = 20; // ブロック内で新しい変数 x を宣言
    console.log(x); // 出力: 20
  }
  console.log(x); // 出力: 10
}
testLet();

3.定数: const

定数は、再代入が許可されない変数です。

不変の値を保持する場合に使用します。

特性:

  • 再代入不可:
    一度値を設定したら変更できません。
  • ブロックスコープ:
    let と同様に、宣言されたブロック内でのみ有効。

注意:
オブジェクトや配列の場合、内容の変更は可能(定数が参照するアドレスは固定されるが、内容は可変)。

使用例:

  • 数学的な定数値(例: 円周率)。
  • 一度設定後、変更しない設定値。

:

const PI = 3.14;
console.log(PI); // 出力: 3.14

// 再代入するとエラー
// PI = 3.14159; // エラー: Assignment to constant variable.

var, let, constの使い分け

  • 原則:
    const を優先的に使用し、再代入が必要な場合のみ let を使う。
  • varは非推奨:
    古いコードとの互換性が必要な場合を除き、使用しない。

3. var, let, constの違い

スコープの違い

スコープは、変数がどの範囲で有効かを示します。

1. var (関数スコープ)

特性:

  • 変数は宣言された関数内で有効です。
  • ブロック(例: if 文や for 文)を無視してスコープが関数全体に広がります。

例:

function exampleVar() {
  if (true) {
    var x = 10;
  }
  console.log(x); // 出力: 10
}
exampleVar();

2. letconst (ブロックスコープ)

特性:

  • 変数は宣言されたブロック(例: {})内でのみ有効です。

例 (let の場合):

function exampleLet() {
  if (true) {
    let x = 10;
    console.log(x); // 出力: 10
  }
  // console.log(x); // エラー: x は未定義
}
exampleLet();

例 (const の場合):

function exampleConst() {
  if (true) {
    const y = 20;
    console.log(y); // 出力: 20
  }
  // console.log(y); // エラー: y は未定義
}
exampleConst();

再宣言の可否

再宣言が許可されるかどうかは、コードの意図を誤解なく表現するために重要です。

1. var

  • 再宣言可能:
    同じスコープ内で再度変数を宣言できます。

例:

var x = 10;
var x = 20; // 問題なし
console.log(x); // 出力: 20

2. letconst

  • 再宣言不可:
    同じスコープ内で再度宣言するとエラーが発生します。

例 (let の場合):

let y = 10;
// let y = 20; // エラー: Identifier 'y' has already been declared
y = 20; // 再代入は可能
console.log(y); // 出力: 20

例 (const の場合):

const z = 30;
// const z = 40; // エラー: Identifier 'z' has already been declared
// z = 40; // エラー: Assignment to constant variable
console.log(z); // 出力: 30

使い分けの指針

JavaScriptでは、以下の使い分けを推奨します:

1. const を優先

  • 変更しない値を保持する場合は、常に const を使います。
  • 不変の意図を明確にし、意図しない変更を防ぐことができます。

例:

const TAX_RATE = 0.1; // 税率は固定
const PI = 3.14;      // 円周率も固定

2. let を必要に応じて使用

• 値の再代入が必要な場合のみ let を使います。

  • 特にループでのカウンタや、後で値を更新する変数に有用です。

例:

let counter = 0;
counter++;
console.log(counter); // 出力: 1

3. var は非推奨

  • 古いJavaScriptコードとの互換性が必要な場合を除き、使用しないのがベストプラクティスです。
  • 不意のバグを招きやすいため、新しいプロジェクトでは避けましょう。

実例

// const の使用例
const PI = 3.14;
const TAX_RATE = 0.08;

// let の使用例
let total = 100;
total = total + total * TAX_RATE; // 税込み計算
console.log(total); // 出力: 108

// var の例(非推奨)
function demoVar() {
  var x = 10;
  var x = 20; // 再宣言可能だが混乱を招く
  console.log(x); // 出力: 20
}
demoVar();

4. データ型

基本型 (Primitive Types)

基本型は、単一の値を保持する不変のデータ型です。

1. Number (数値型)

  • 整数と浮動小数点数を表現。

例:

let age = 25;          // 整数
let temperature = 36.6; // 小数
console.log(age, temperature);

2. String (文字列型)

  • テキストデータを表現。
  • ダブルクォート、シングルクォート、テンプレートリテラルを使用可能。

例:

let name = "JavaScript";
let message = `Hello, ${name}!`; // テンプレートリテラル
console.log(message);

3. Boolean (真偽値)

  • true または false の2つの値のみ。
  • 条件判定やフラグに使用。

例:

let isStudent = true;
console.log(isStudent);

4. Undefined (未定義)

  • 値が割り当てられていない変数の初期値。

例:

let x; // 初期値は undefined
console.log(x);

5. Null (値なし)

  • 明示的に「値がない」ことを表現。

例:

let empty = null;
console.log(empty);

6. Symbol (一意の識別子)

  • 一意の値を作成するためのデータ型。

例:

let sym = Symbol('unique');
console.log(sym);

7. BigInt (大きな整数)

  • 2^53-1 を超える数値を表現可能。
  • 数値の後ろに n を付けて表記。

例:

let bigNum = 123456789012345678901234567890n;
console.log(bigNum);

オブジェクト型 (Object Types)

オブジェクト型は、複雑なデータや振る舞いを保持します。

1. Object

  • キーと値のペアを保持するプロパティのコレクション。

例:

let person = { name: "Alice", age: 25 };
console.log(person.name); // 出力: Alice

2. Array (配列)

  • 順序付きデータのリストを保持。
  • 配列のインデックスは0から始まります。

例:

let colors = ["red", "blue", "green"];
console.log(colors[1]); // 出力: blue

3. Function

  • 実行可能なコードのブロック。

例:

function greet(name) {
  return `Hello, ${name}!`;
}
console.log(greet("Alice")); // 出力: Hello, Alice!

実例

基本型とオブジェクト型を組み合わせる例:

const student = {
  name: "John",
  age: 20,
  isEnrolled: true,
  courses: ["Math", "Science", "History"],
  greet: function() {
    return `Hello, my name is ${this.name}.`;
  }
};
console.log(student.greet()); // 出力: Hello, my name is John.

5. 基本的な演算子

1. 算術演算子

数値を操作するための基本的な演算子です。

演算子説明結果
+加算10 + 515
-減算10 - 55
*乗算10 * 550
/除算10 / 52
%剰余(あまり)10 % 31

例:

let a = 10;
let b = 5;
console.log(a + b); // 出力: 15
console.log(a % b); // 出力: 0

2. 比較演算子

値同士を比較して、true または false を返します。

演算子説明結果
==等しい(型変換あり)10 == "10"true
!=等しくない(型変換あり)10 != "10"false
===厳密に等しい(型変換なし)10 === "10"false
!==厳密に等しくない10 !== "10"true
<小さい5 < 10true
>大きい10 > 5true
<=以上10 <= 10true
=>以下 10 >= 5true

例:

console.log(10 == "10");  // 出力: true (型を無視して比較)
console.log(10 === "10"); // 出力: false (型も比較)
console.log(10 > 5);      // 出力: true

3. 論理演算子

複数の条件を組み合わせたり、条件を反転させたりする際に使用します。

演算子説明結果
&&AND(かつ)true && falsefalse
||OR(または)true || falsetrue
!NOT(反転)!truefalse

例:

let isStudent = true;
let isMember = false;

console.log(isStudent && isMember); // 出力: false (両方が true でないと false)
console.log(isStudent || isMember); // 出力: true (どちらかが true なら true)
console.log(!isStudent);            // 出力: false (反転)

演算子を組み合わせた例

演算子を組み合わせて複雑な条件を作ることができます。

例:

let age = 20;
let hasTicket = true;

if (age >= 18 && hasTicket) {
  console.log("You can enter."); // 条件が true の場合、出力
} else {
  console.log("You cannot enter.");
}

まとめ

JavaScriptの基本構文とデータ型を学ぶことで、プログラムの土台となるロジック構築が可能になります。

この知識を活かし、今後のより高度なトピック(例: 関数、非同期処理、オブジェクト指向プログラミングなど)へスムーズに進む準備が整います。

また、変数の適切なスコープ管理や型の理解は、エラーの少ない効率的なコーディングの鍵です。

これから実際の開発でこの知識を活用し、さらに深い理解を目指しましょう!

SHARE
採用バナー