忍者ブログ
[100] [99] [98] [97] [96] [95] [94] [93] [92] [91] [90]

DATE : 2024/05/06 (Mon)
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。


DATE : 2006/07/02 (Sun)

JavaScript のデータ型

JavaScript には、以下のデータ型があります。

String 型

文字列を表す型です。以下のように、「"」や「'」で囲むことで 文字列を生成できます。

var s = "string"

ちなみに、1つの文字は符号なし16ビット整数で表されます。

文字エンコーディングは UTF-16 です。

初めの文字から、0, 1, 2, ... とインデックスが割り振られます。

Number 型

数値を表す型です。

64ビットの浮動小数点数(IEEE 754)で表されます。

表現できる値の範囲は、±2の56乗です。

整数と浮動小数点の区別はされません。

演算の結果、数値で表現できなくなった場合の値として「NaN」値があります。NaN 値は通常、比較できません。NaN 値どうかを確かめるには、isNaN 関数を使用します。

Boolean 型

真偽値を表す型です。

「true」または「false」の値をとります。前者が真、後者が偽です。

Object 型

オブジェクトを表す型です。オブジェクトは、プロパティの組から成っています。

Undefined 型

undefined を表す型です。未初期化の変数には、 undefined が格納されています。

Null 型

null を表す型です。

この他にも、ECMAScript の仕様には Reference 型や List 型、Completion 型があります。ただし、これらの型は式の中間評価でのみ用いられ、変数には格納できないデータ型なので、ここでは省略します。

ちなみに、JavaScript の変数はどのような型でも受け付けます。つまり、上記で示した型の値を、自由に変数へ代入することができます。

var a;
a = 1;
a = "abc"
a = false;
a = null;

型変換

JavaScript では、演算子など、場合に応じてデータ型を自動的に変換します。

例えば、次のコードでは、String 型と Number 型を減算していますが、正しく計算が行われます。

4 - "4"

しかし、場合によっては、型を手動で変換しておきたい場合もあります。

例えば、「+」演算子は、数の加算だけでなく、文字列の結合も行います。そのため、データ型によって動作が異なってしまいます。

次のコードは Number 型同士の加算のため7という結果になります。

3 + 4

しかし、どちらかの項が String 型の場合は、文字列の結合が行われてしまいます。

3 + "4"

結果は、「34」となります。

上の例を、数として計算にするには、String 型を Number 型に変換しなければなりません。

変換を行うには、以下のようにします。

3 + Number("4")

型変換の概要を以下に示します。

なお、例のコード中に出てくる「===」は、両端のデータ型が同じで、かつ値も等しいことを示します。

String 型への変換

そのデータを表現する文字列に変換します。例えば、Null 型は「"null"」になりますし、「34」や「false」は「"34"」や「"false"」になります。

例:

String(4) === "4"
String(true) === "true"
String(null) === "null"
String(undefined) === "undefined"
Number 型への変換

String 型の場合、数字と判断できる場合はその数字に、数字と判断できない場合は NaN になります。(具体的なルールは、省略します)

Undefined 型は NaN 、Null 型は0になります。

そして、Boolean 型は、true が1、false が0になります。

例:

String("45") === 45
isNaN( String("number") ) === true
String("true") === 1
String("false") === 0
String(null) === 0
isNaN( String(undefined) ) === true

ここで出てくる isNaN 関数は、引数の値が NaN かどうかを調べる関数です。

Boolean 型への変換

Number 型の場合、0は false 、それ以外は true になります。

Undefined 型、Null 型はともに false になります。

String 型の場合、文字列の長さが0の場合のみ false となります。それ以外は全て true です。つまり、Boolean 型を String 型に変換した値を再び Boolean 型に変換しようとしても、true になります。

例:

Boolean(0) === false
Boolean(1) === true
Boolean(-1) === true
Boolean("") === false
Boolean("false") === true
Boolean(undefined) === false
Boolean(null) === false
PR
●この記事にコメントする
お名前
タイトル
文字色
メールアドレス
URL
コメント
パスワード
●この記事へのトラックバック
この記事にトラックバックする:
忍者ブログ [PR]
ブログ内検索
最近の状況
リンク
カレンダー
04 2024/05 06
S M T W T F S
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
使用許諾
最新コメント
(08/15)
(05/04)
(03/06)
(03/04)
(09/25)
最新トラックバック
ブログ内検索
最近の状況
リンク
カレンダー
04 2024/05 06
S M T W T F S
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
使用許諾
最新コメント
(08/15)
(05/04)
(03/06)
(03/04)
(09/25)
最新トラックバック