備忘録的プログラミングリファレンス

変数(Variable)

JavaScriptでは、データの型宣言は必要がありません。自動で変数の型を判別して変数が生成されます。  JavaScriptでは、すべてのデータはオブジェクトとして扱われます。以下のような型、コンストラクタから変数として宣言すると、そのインスタンスが生成されます。

変数の宣言

 JavaScriptでは、var、let、constステートメントを使い変数を宣言します。それぞれの機能は以下です。

 変数を宣言するには、

var 変数名;

と記述します。配列や連想配列(オブジェクト)は、それであることを宣言した方がよいでしょう。

var 配列名=[]; var 連想配列名={};

 var、let、constステートメントの機能は以下です。

初期値再代入再宣言
var
let
const

 初期値は変数宣言と同時に値を設定します。

var _variable = 0; (let...◯、const...◯)

 再代入は初期値の変更です。

_variable = 100; (let...◯、const...×)

 再宣言は同名変数で再宣言できるかです。

var _variable = 'foo'; (let...×、const...×)

 varステートメントは同名の変数が使われてもエラーが発生しませんでしたが、letによってデバグがし易くなります。
 グローバル変数で初期値を変えたくない場合はconstを利用するとよいでしょう。

変数の型

 JavaScriptでは、以下のような変数の型が存在します。

  • プリミティブ型あり
    • Boolean 真偽値(trueとfalseのリテラル)
    • Number 数値
    • String 文字列
    • null 値が存在しない(nullリテラル)
    • undefined 未定義の値
    • Symbol 一意な値
  • オブジェクト型
    • Array 配列
    • Object オブジェクト、連想配列
    • RegExp 正規表現
    • Date 日付
    • Function 関数
    • Iterator 順序付け

プリミティブ型とオブジェクト型

 多くのプログラム言語では、データ型にプリミティブ型とオブジェクト型の2つがあります。JavaScriptでは、プリミティブ型としてBoolean、Number、Stringがありますが、それぞれをオブジェクトとして作成することもできます。
 同じデータ型であっても、プリミティブ型のデータと、オブジェクト型のデータという2つの扱いがあります。

var str = "abc";

// 真偽値はプリミティブ型の値として扱われる
var bool_pri = Boolean(str); 
alert(bool_pri);			// true
alert(typeof bool_pri);		// "boolean"

// boolean型のオブジェクトを作成(インスタンスの作成)
var bool_obj = new Boolean(str);
 
alert(bool_obj);			// true
alert(bool_obj);			// "object"

...
var obj_str = new String("abc");
alert(typeof str);			// "string"
alert(typeof obj_str);		// "object"

 Boolean、Number、Stringはオブジェクト型の変数を宣言することもできますが、多くの場合はプリミティブ型を使った方が簡易でしょう。

Boolean、Number、String、nullのリテラル

 リテラルとは、”(ダブルコーテーション)や'(シングルコーテーション)で囲まれた文字列や定数値といった直接表記される、変数に代入されるような値です。プログラムでは、"string"や1.23などの値を変数に代入することで計算するのですが、"string"や1.23などといった文字列や数値もコードを実行するとメモリを消費します。メモリを消費することはコード上存在しているという扱いになるために、その存在をリテラルという概念で扱います。
 Boolean、Number、String、nullのリテラルには以下のものがあります。

変数型リテラル
Booleantrue、false
Number整数、浮動小数点
String文字列、”(ダブルコーテーション)、'(シングルコーテーション)、`(バッククォート)
nullnull
undefinedundefinedが入っている

エラー

 エラーを作成することができます。作成できるエラーは以下です。

型付き配列コンストラクタ

 メモリを予約するコンストラクタのようです。?


型の判定
  • ===
  • typeof
===
nullなどの判別には速い。

typeofの型出力
typeof 1 = number typeof 'Hello' = string typeof true = boolean typeof null = object typeof NaN = number typeof undefined = undefined typeof オブジェクト = object typeof 配列 = object typeof 関数 = function