2012年12月6日

JavaScript 初歩のまとめ ⑤ データ型

JavaScript の初歩のまとめを続けていますが、今回から制御文をまとめるつもりでいたのですが、これには 比較演算子が 付き物なので、先にデータ型の初歩的な部分の 数値、文字列、論理値 について まとめてみようと思います。


数値型

数値型には、10進数、8進数、16進数、浮動小数 等がありますが、今の時点では、10進数の整数と小数くらいしか使わないと思います。
変数に代入するときの書き方は、

var num = 10;
var num = 3.14;



文字列型

文字列型には、数値以外の全部の文字が含まれます。ここには 0文字の文字列も含まれます。文字列を扱う時に注意が必要なのが、「"」(ダブルクォーテーション)または「'」(シングルクゥォーテーション)で囲む必要がある事です。囲まないで代入しようとすると変数名として扱われます。また、数字を囲むと 数値型ではなく 文字列型として扱われるので、計算することができなくなります。「"」や「'」の記号自身を文字列として扱いたいときは、「"」を扱いたいときは「'」で囲み、「'」を扱うときは「"」で囲みます。
変数に代入するときの書き方は、

var str = "It's";
var str = 'JavaScript';
var str = "";

3つめの例は、0文字の文字列の例です。



論理値型

論理値には、true と false があります。それぞれ 真、偽 の意味です。例を挙げた方が判りやすいと思います。

例) num == 10;

この式が成り立つ時、つまり 変数 num に10 に等しい時は、true 等しくない時には false となります。これは「"」や「'」で囲んでしまうと、文字列になってしまうので注意が必要です。理論値型は、次にまとめを書こうと思っている 制御文で必要になるデータ型です。


変数に代入するときの書き方と気を付けるべき事を書きましたので、その辺りの事をいくつか試してみます。


var text = JavaScript;
document.write(text);
文字列をクォーテーションで囲まなかった場合です。これを実行すると、














エラーが出て、何も表示されません。これは、JavaScript を変数と解釈したのに、その変数が宣言されていないためです。



次は文字列の中に「'」が含まれているのに文字列を「'」で囲んでしまった場合です。
var text = 'It's a toy.';
document.write(text);














やはりエラーが出て表示されませんでした。囲むのを「"」に直して実行してみます。

var text = "It's a toy.";
document.write(text);














正しく表示されました。


次は 数字をクォーテーションで囲んでみます。
var num1 = '50';
var num2 = '50';
document.write(num1 + num2);



num1 と num2 という変数にそれぞれ 50を代入していますが、クォーテーションで囲んでいるので、どちらも文字列として扱われています。この 2つの変数の合計を表示させようとしていますが、文字列になっているため、100 ではなく 5050 が表示されました。これは 文字列が連結されたものです。


ついでなので もうひとつ試してみましょう。
var num1 = '50';
var num2 = 50;
document.write(num1+num2);



今度は、num1 は文字列ですが、num2 はクォーテーションを外してちゃんと数値型で代入しているのに、実行した結果はさっきと同じです。これは JavaScript が、文字列と数値を 足し算しようとすると、自動で 数値を文字列に変換するようにできているためです。


今回は以上です。
データ型にはこれ以外にもいくつか種類がありますし、数値型の中にも ここに出ていないものがあります。これらの型については、必要が出た時に復習とまとめをしてみようと思います。
追記 fflo 様のご指摘をいただいた箇所を訂正いたしました。2012/12/10

2 件のコメント:

  1. 「理論値」と「論理値」の2つの言葉を混ぜて使っているようですが、両者は意味が違います。
    プログラミングで出てくる true, false は論理値(真偽値)です。
    「理論値」は物理などでよく使う用語です。

    参考
    論理値とは【真理値】 - 意味/解説/説明/定義 : IT用語辞典
    http://e-words.jp/w/E8AB96E79086E580A4.html

    返信削除
  2. fflo 様
    ご指摘ありがとうございます。自分でも調べて 確認後に訂正したいと思います。
    初心者の 勉強中のブログで、間違いも多々あると思います。お気付きの点がありましたら、また教えて下さい。

    返信削除