JavaScript徹底ガイド|変数の型と値について学ぶ(プリミティブ型)

JavaScript

JavaScriptで扱うことのできるデータ型は、プリミティブ型(基本型)オブジェクト型の2つに分類されます。
この記事では、データ型のタイプの1つ『プリミティブ型』について学びます。

プリミティブ型(基本型)とは

プリミティブ型に属する値は、『数値』『文字列』『論理値』があります。加えて、特殊な値『null』『undefind』がプリミティブ型に属します。
プリミティブ型のデータは、データを構成する最も基本的なもので、不変な値として定義されています。プリミティブ型の値を
プリミティブ値といい、プリミティブ値を変数に代入すると、変数にはその値が格納されます。

ワラ

変数について、復習が必要な人はもう一度以下の記事を読んでみよう!
JavaScript JavaScript徹底ガイド|変数と値について学ぶ

数値

数値とは、、数字です。
プログラムに直接記述できる定数値をリテラルといい、数値を表すリテラルには、『整数リテラル』と『浮動小数点リテラル』があります。

難しいかもしれませんが、分類を表にしておきます。
まずは、こういうものがあると認識しておいて、プログラミングをしていく中で覚えていくといいと思います。

分類 表記法 表記例 説明 備考
整数リテラル 10進数 123 何も付けずに整数をそのまま記述する  
16進数 0x2a 先頭に0xをつける  
8進数 0o73 先頭に0oをつける ES6
2進数 0b101 先頭に0bをつける ES6
浮動小数点リテラル 整数.小数 3.14 小数をそのまま記述する  
.小数 .123 整数部分が0の場合は省略できる  
仮数e指数 6.02e23 6.02*10 23乗  
仮数E指数 1.616199E-35 1.616199*10 -35乗  

文字列

文字列リテラルは、シングルクォーテーション(’)、もしくはダブルクォーテーション(”)のいずれかで文字列を囲んで表ます。

JavaScript
'hope hope, huga huga.'
"ほげほげ、ふがふが。"
""
'3.14'
MEMO
“”は文字列を何も含まない文字列で、空文字と呼ばれます。
文字列の中に’を含む場合は”で囲み、”を含む場合は’で囲めば、それを記述することができます。
JavaScript
”i'm going to learn Javascript”
JavaScriptをHTMLのタグに埋め込む場合、JavaScriptのプログラムは文字列として記述します。
JavaScript
<input type="button" value="Click" onclick="alert('huge')">
HTMLではダブルクォーテーションを使用し、JavaScriptではシングルクォーテーションを使用するなどして、HTMLとJavaScriptで使用する引用符を使い分けるとよいでしょう。

特殊な文字

改行やタブなどの文字は、そのまま文字列として使用することはできません。このような特別な文字はエスケープシーケンスで表すことができます。エスケープシーケンスは、バックスラッシュ(\)の後に特定の文字を記述したもので、これにより特定の制御コードや文字を表すことができます。

エスケープシーケンス 意味 備考
\0 ヌル文字  
\b バックスペース  
\t 水平タブ  
\n 改行  
\v 垂直タブ  
\f 改ページ  
\r 復帰(CR)  
\’ シングルクォーテーション  
\” ダブルクォーテーション  
\\ バックスラッシュ  
\xXX 2桁の16進数XXで指定するLatin-1文字  
\uXXXX 4桁の16進数XXXXで指定するUnicode文字  
\u{XXXXXX} 16進数のコードポイントXXXXXXで指定するUnicode文字 ES6

論理値

論理値とは、条件式が真である偽であるかを表すための値。論理値には、trueとfalseの2つがあります。trueは真であることを、falseは偽であることを表ます。

JavaScript
x == 2
例えば上記の式を考えてみましょう。
この式はxが2に等しいかどうかを表す条件式です。==は左辺が右辺に等しいことを表す関係演算子です。この式の値は、変数xの値が2のときはtrueとなり、そうでないときはfalseとなります。

ワラ

ここでは論理値がどういったものかの説明だけさせてもらうよ。演算子など詳しい説明については後日、別記事にて解説するね!

特殊な値(null、undefind)

「値が存在しない」ことを表す値として、nullとundefinedがあります。

undefinedは未定義であることを表し、次の値はundefinedとなります
・変数に値をまだ代入していないときの変数の値
・存在しないオブジェクトのプロパティを読み出そうとしたときの値
・存在しない配列の要素を読み出そうとしたときの値
・戻り値のない関数の戻り値
・関数の呼び出し時に指定されなかった引数の値
プログラムで変数にundefindを代入することはありません。変数の値がundefindとなるのは、代入していないなどの結果であることに注意してください。

nullは、「空」を値を表すリテラルです。nullは、おもにプログラムで何かを検索したが見つからなかった場合に、何もなかったことを伝えるための値として用いられます。

シンボル

シンボルはECMAScript6で導入された新しいプリミティブ値です。シンボルは自分自身のみと等しく、他の全ての値と異なるユニークな値となります。

シンボルはSymbol()を使って生成します。

JavaScript
var sym1 = Symbol();
Symbol()は、呼ばれるたびに異なる値を生成します。例えばもう一つシンボルを生成してみます。
JavaScript
var sym2 = Symbol();
すると、sym1とsym2は異なる値となります。
JavaScript
console.log(sym1 == sym2); // → false
また、Symbol()に引数を指定して、生成するシンボルに対する説明文をつけることができます、
JavaScript
var HEART = symbol("ハート");
シンボルの説明文は、toString()メソッドを使って参照することができます。
JavaScript
console.log(HEART.toString()); // → Symbol(ハート)

ワラ

シンボルの説明文を活用して可読性の高いプログラムを構築することができるよ!優れたエンジニアは後々の保守対応も視野に入れてプログラミングしていくことが大切だよ。

まとめ

プリティブ型について理解は深まりましたでしょうか。値については実践の中で覚えていくことも多いので、ここではどういった値の種類が存在しているかを把握する程度で十分かと思います。