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

変数(Variable)

 変数とは、プログラミングをする上で基礎となる知識です。

 JavaScriptでは、データの型宣言が必要ありません。初期値などの値によって自動で変数の型を判別して変数が生成されます。以下は変数の宣言の例です。

変数の宣言
var(修飾子) value(変数名) = "abcdef"(初期値);

JavaScriptにおける変数の扱い

 JavaScriptでは、基本的にすべてのデータはオブジェクトとして扱うことができます。そのため、変数として宣言するとそのインスタンスが生成されます。

変数の宣言と Object() を使った変数の宣言
var string = 'abcd';
var number = 100;

 以下は同じことを意味しています。

var string = new Object( 'abcd' );	// String 型
var number = new Object( 100 );		// Number 型

 詳しくはプリミティブ型とオブジェクト型を参照してください。

修飾子

 JavaScriptでは、var、let、const 修飾子を使い変数を宣言することができます。
 修飾子は、変数の性質を設定するためのもので、var、let、constステートメントの機能は以下です。

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

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

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

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

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

 再宣言は同名変数で再宣言できるかです。以下は変数の型を暗黙に変更しようとしています。

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

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

変数名

 変数を宣言するには、

var 変数名;
と記述します。

 予約語と呼ばれるワードは、変数名として使えません。

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

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

 var は修飾子といいます。変数の性質を設定するもので、他に let、const があります。詳しくは以下の修飾子を参照してください。

変数の型

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

  • プリミティブ型あり
    • Boolean 真偽値(trueとfalseのリテラル)
    • Number 数値
    • String 文字列
    • null 値が存在しない(nullリテラル)
    • undefined 未定義の値
    • Symbol 一意な値
  • オブジェクト型

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

 多くのプログラム言語では、データ型にプリミティブ型とオブジェクト型の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 などといった文字列や数値はメモリを消費します。プログラムの実行時にメモリを消費する存在をリテラルという概念で扱います。
 Boolean、Number、String、nullのリテラルには以下のものがあります。

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

 null 、undefined は値としては存在してないという意味です。しかし、null 、undefined 値として存在し値がないこととして扱うことができます。null 、undefined もまたリテラルとして扱われます。

エラー

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

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

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


型の判定
  • ===
  • 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