🐥

変数および定数宣言方法とデータ型

2024/11/04に公開

JavaScriptでは、変数を宣言する際にvarletconstという3種類の演算子を使います。それぞれの特徴と使い方、またJavaScript特有の「動的型付け」それに付随して「静的型付け」についてもまとめています。
この記事は、プログラミング初心者である筆者が、学習の過程でつまずいた経験をもとに備忘録としてまとめたものです。

変数、定数宣言の基本:var、let、const

JavaScriptでは、変数の宣言にvarletconstの3つの方法があります。宣言された変数のスコープ(範囲)や、再代入が可能かどうかに違いがあります。それぞれの特徴を下記に示します。

var(ほとんど使わない)

varは古い変数宣言方法で、関数内でしか使えない。
再宣言も再代入も可能だが、意図しないバグが発生しやすいため、最近はほとんど使われない。

var name = 'Alice';
name = 'Bob'; // 上書き可能
var name = 'Charlie'; // 再宣言も可能
console.log(name); // 'Charlie'

let(再代入できる)

letはブロックスコープ({}内でのみ有効)で、再代入が可能な変数を宣言。
再宣言はできないが、新しい値に上書きすることができる。更新可能な変数に使用する。

let name = 'Sam';
name = 'Tim'; // 上書き可能
console.log('hello ' + name); // 'hello Tim'

const(再代入ができない変数(定数))

constもブロックスコープ({}内でのみ有効)だが、再代入ができない。定数として使用する。値が一度決まったら変更できないので、変わらない値に適している。

const name = 'Sam';
// name = 'Sara'; // エラーが発生する
console.log(name); // 'Sam'

JavaScriptのデータ型:代表的なデータ型

JavaScriptには6つの基本データ型がある。

Number(数値)

・整数や小数など、数値全般を表す。

let age = 25; // 年齢を示す数値
let price = 99.99; // 小数も数値として扱える

String(文字列)

・文字列を表し、' '" " ` ` で囲む。

let greeting = "Hello, World!"; // 文字列は文章を保存できる
let name = 'Alice'; // 名前などのテキスト情報も文字列
let message = `Today is sunny!`; // バッククォートでもOK

Boolean(真偽値)

・Boolean型は、真か偽かを表す2つの値を持つデータ型です。条件が「真」の場合はtrue、「偽」の場合はfalseとして扱われる。

let isActive = true; // trueかfalseで条件を表す
let hasFinished = false; // 完了していないなど、2択で表現

Undefined(未定義)

・Undefined型は、まだ値が設定されていない状態を表す。変数を宣言したけれど、まだ値が割り当てられていないとき、自動的にundefinedになる。

let name; // 値を設定していないのでundefinedになる
console.log(name); // 出力: undefined

Null(空のオブジェクト)

・Null型は、意図的に「値がない」状態を表すために使われる。undefinedとは違い、開発者が「この変数には何も入っていない」という意味でnullを設定することができる。
・例:let data = null;

Symbol(シンボル)

・Symbol型は、一意(ユニーク)な識別子を作るためのデータ型(他と重複しない、唯一のものとして識別できる名前や番号)。主にオブジェクトのキー(識別子)として使われ、同じ文字列で作成したSymbolでも異なる一意の値として扱われる。

let sym1 = Symbol('unique'); // シンボルは一意の識別子
let sym2 = Symbol('unique'); // sym1とは別の識別子として扱われる
console.log(sym1 === sym2); // 出力: false(異なるシンボル)

慣れないうちはまずNumberStringBooleanを覚えて使い、徐々にUndefinedNullも活用できるように練習すると良い。

動的型付け

JavaScriptでは、変数にどのような種類のデータが入るかを事前に指定する必要はない。これを動的型付けという。動的型付けでは、変数に代入する値によって自動的にデータの種類(型)が決まり、後から型を変えることもできる。1つの変数に複数の種類のデータを順番に入れることが可能。

let variable = 'str'; // 最初はString型
variable = 12;        // 次にNumber型
variable = false;     // 次にBoolean型
variable = undefined; // 最後にUndefined型
console.log(typeof variable); // 最後の値 "undefined" の型が表示される

typeofを使うと、変数のデータ型を確認できる。
同じ変数に異なる型のデータを代入できるため、柔軟なプログラムが書ける。

静的型付け

JavaScriptとは異なり、静的型付け言語(JavaやCなど)は、変数を宣言する際にデータ型を指定する必要がある。一度指定した型は変更できず、異なる型のデータを再代入するとエラーが発生する。
JavaScriptのように自由に型を変えられない代わりに、静的型付け言語は型のミスが少なく、プログラムが安定する良い点がある。

5. まとめ

✅変数宣言の方法:varletconstを使い分ける。letconstが推奨される。
✅データ型:NumberStringBooleanUndefinedNullSymbolの6種類。
✅動的型付け:JavaScriptは型を自動で決め、変更も自由。typeofで型を確認できる。
✅静的型付け言語との違い:JavaScriptは型に柔軟で、変更可能。静的型付け言語は型が固定され、エラーを防ぐ役割が強い。

参考
https://developer.mozilla.org/ja/docs/Web/JavaScript/Guide/Grammar_and_types
Mana:1冊ですべて身につくJavaScript入門講座
https://www.sbcr.jp/product/4815615758/

Discussion