TypeScriptに入門したいのでJavaScriptに入門してみる(nullリテラル~データ型とリテラルの最後まで)
続: JavaScript入門
[これ]({{ relref path=“2019-10-29-javascript-intro.md” }}) の続き。
教材は
nullリテラル
null 値を返すリテラルで、「値がない」ことを表す。
nullを参照した場合コンソール上では null と表示されるだけである。
undefined はリテラルではない
undefined はただのグローバル変数で、undefinedという値を持っているだけ。したがって同じ undefined という名前のローカル変数を宣言することができる(もちろん非推奨)
true, false, null は変数ではなくリテラルであるため、同じ名前の変数を定義することができない。
オブジェクトリテラル
オブジェクトの keyには 文字列またはSymbol を指定し、値にはプリミティブ型からオブジェクトまで何でも入れることができる。
オブジェクトが持つキーのことをプロパティ名と呼ぶ。※ここでは key がプロパティ名。
オブジェクトのキーを参照するにはドット . またはブラケット [] を利用する。
ドット記法ではプロパティ名が変数名と同じく識別子である必要があるので、数値から始まるような識別子は利用できない。
配列リテラル
配列の添字は 0 から始まる。他の言語と同じ。
正規表現リテラル
JavaScriptは正規表現をリテラルで書ける。正規表現リテラルはスラッシュ / で囲まれた正規表現のパターン文字列で表される。
プリミティブ型とオブジェクト
プリミティブ型は基本的にリテラルで表現するが、真偽値(Boolean)、数値(Number)、文字列(String)はそれぞれオブジェクトとして表現することもできる。
ラッパーオブジェクトという。
ラッパーオブジェクトは length などのプロパティを持つ。
しかし明示的にラッパーオブジェクトを使う理由がない。プリミティブ型のデータに対してもオブジェクトのように length プロパティを参照することができるため。
プリミティブ型のデータのプロパティにアクセスする際に、対応するラッパーオブジェクトに暗黙的に変換してからプロパティにアクセスするため。 ラッパーオブジェクトを明示的に書くのは冗長なので、プリミティブ型のデータを表現が推奨される。