JavaScript データ型

2014-08-30
いっす!この記事は1年以上前に投稿されたもので、情報が古いかもしれません。ご注意ください!
  • 文字列
  • 特殊な文字の入力(エスケープシーケンス)
  • 数値
  • 整数リテラルの記述
  • 浮動小数点リテラルの記述
  • 論理値
  • オブジェクトとnull

090419_1618

文字列

基本データ型の1つであり、アルファベットや数字などの文字を組み合わせたもの。
例)「Hello」や「こんにちは」など

文字列をスクリプトの中に記述する場合には文字列リテラル当呼び方をする事もある。

記述方法

シングルクオテーション「’」またはダブルクオテーション「”」で囲む。

'こんにちは'
"Hello"

シングルクオテー書んで囲んだ文字列の中には文字としてのダブルクオテーションを含む事ができる。逆も可能。

'私の出身地は“福岡県”です。'
"I'm a lady."

シングルクオテーションで囲んだ文字列の中にシングルクオテーションの文字を含ませたい場合は下記のエスケープシーケンスを参照の事。

間違った使い方

文字列の先頭にシングルクオテーションを使い、文字列の最後にダブルクオテーションを使うようなことはできない。

複数行にわたって記述する事はできない。

//コレは間違い
'こんにちは。
お元気ですか。'

 JavaScriptにおけるエスケープシーケンス

キーボードから入力できない文字を他の文字の組み合わせで表現したもの。

エスケープシーケンス 意味
¥b バックスペース
¥t 水平タブ
¥v 垂直タブ
¥n 改行
¥r 復帰
¥f 改ページ
¥’ シングルクオテーション
¥” タブルクオテーション
¥¥ ¥文字
¥0 NULL文字
¥xXX 2桁のXX(16進数)が表すLatin-1文字
¥uXXX 4桁のXXXX(16進数)が表すUnicode文字

 数値

数字や数字に関する記号と組み合わせて表現する。

「’」や「”」で囲う必要はない。
囲うと数値ではなく文字列となる。

数値定数

JavaScriptでは特殊な数値を表す定数が定義されている。これらの定数はNumberクラスのコンストラクタ関数のプロパティとして定義されている。

  • Number.NaN
  • Number.POSITIVE_INFINITY
  • Number.NEGATIVE_INFINITY
  • Number.MAX_VALUE
  • Number.MIN_VALUE
Number.NaN

「Not a Number」の略語である数値でない特殊な値を表すときに使用される。
例)0を0で割ったときなど
この値が出力されるときは「NaN」となる。

Number.POSITIVE_INFINITY

表現可能な最大の値を超えたときに使用される。正の無限大を表す。
例)0でない正の値を0で割ったときなど
この値が出力されるときは「Infinity」となる。
同様にNumber.NEGATIVE_INFINITYは負の値の絶対値が表現可能な最大の値を超えた場合に使用される。出力は「-Infinity」。

Number.MAX_VALUE

表現可能な最大の数値。

Number.MIN_VALUE

表現可能な最小の数値。

比較演算子などを使ってこれらの値を比較する場合には注意が必要。

<script>
document.write((1/0)+"<br>");
document.write((-1/0)+"<br>");
document.write( Number.MAX_VALUE+"<br>");
document.write( Number.MIN_VALUE+"<br>");
</script>

サンプル

整数リテラルの記述

整数として記述された値を整数リテラルと呼ぶ。

10進数で整数を表す

100
82

16進数で数値を表す

には’0x’または’0X’で始まり0から9までの数字かAからFまでの記号(小文字のaからfでも可)で数値を表す。

8進数

将来的に廃止されるらしいので使わない。

浮動小数点リテラルの記述

浮動小数点として記述された値を浮動小数点リテラルと呼ぶ。

小数点形式の場合

32.45
0.0038

指数形式の場合

基数が10として次のように表す。

3.2e2
2.4e-3

「3.2e2」とは「3.2×102」のことであり「320.0」である。
「2.4e-3」とは「2.4×10-3」のことであり「0.0024」である。

「e」の代わりに「E」を使っても構わない。

3.2E2
2.4E-3

論理値

trueまたはfalseのいずれかの値をとる。
trueとfalseはJacaScriptで予約語として用意されているもの。

スクリプトの中で論理値の値を記述する場合はtrueまたはfalseを直接記述する。

true
false

論理値は主に等値演算子や関係演算子が含まれる式を評価した結果として返される。例えば値と値が等しいかどうかを比較したとき、正しければtrueを返し正しくなければfalseが返される。

10 == 10
15 < 8

「10 == 10」は「==」演算子の左辺等辺の値が等しいかどうかを判別する。この場合は正しいので「10 == 10」はtrueを返す。
また「15<8」は「<」演算子の左辺が右辺より大きいかどうかを判別する。この場合は間違っているので「15<8」はfalseを返す。

論理値は条件分岐や繰り返し処理の条件式の中で用いられる。条件分岐の1つであるif文は条件式が返す論理値によって実行する処理を分ける。

if ( 15<8 ){
  //条件式がtrueを返すときの処理
}else{
  //条件式がfalseを返すときの処理
}

この「15<8」が条件式に該当する。この場合「15<8」はfalseを返すので「条件式がfalseを返すときの処理」が実行される。

このように論理値はtrueやfalseの値を画面に出力したり計算したりといった用途で使うのではなく、条件式が正しいのか正しくないのかと言った状態を表すために使用される。

オブジェクト型

基本データ型のように単独の値ではなく、様々な値を集めたり組み合わせたものと考える。
例えば複数の値を集めて名前をつけたものはオブジェクト(オブジェクト型のオブジェクト)と呼ばれるし、同じように複数の値を集めて番号を付けたものは配列と呼ばれる。

null

有効な値が存在しない、という事を表すために使用される値。予約語。

nullは値なので変数に代入する事も可能。

var num = null;

この場合、変数「num」には有効な値が存在しない事を表している。
ただ、nullは変数に代入して利用するというよりも何らかの値を取得しようとしたときに有効な値が存在しなかった場合に変わりにnullが返されると言った用途で使用される。そのため、値を取得した時にnullかどうかを判定する事がよく行われる。

なお、nullと似た値に未定義値(undefined)がある。
この2つは別なものなので注意する。

<script>
//オブジェクトの例
var person = {name:'木村', old:'20'};
document.write('<p>' + person.name + '</p>');
document.write('<p>' + person.old + '</p>');

//配列の例
var pref = ['福岡県','沖縄県','東京都'];
for (var i=0; i< pref.length; i++){
  document.write('<p>'+ pref[i] + '</p>');
}
</script>

サンプル