7. ちょっと詳しく(データ編)
データ型に関しては「変数とデータ型」で簡単に説明したが、 ここでは、もう少し詳しく勉強してみよう。
数値型
JavaScriptで数値を扱う場合、内部処理ではすべて浮動小数点数(要するに実数)として扱われます。 また、数値型はJavaScriptのビルトイン・オブジェクトであるNumberオブジェクトとして取り扱われます。 ただし、ブラウザの実装により若干の差があるので、数値定数をそのままオブジェクトとして取り扱うことは避けた方が良いでしょう。 数値定数としては、以下の各形式により表現します。
- 8進定数
-
0から始まり、0〜7までの数値列で表現します。
例 0123 → 8進数の 123 = 10進数の 83 に等しい
- 10進整定数
-
0以外の数値から始まる0〜9までの数値列で表現します。
例 123
- 16進定数
-
0xまたは0Xで始まり、0〜9およびA(a)〜F(f)までの数値列で表現します。
例 0x123 → 16進数の 123 = 10進数の 291 に等しい
- 10進実定数
-
小数点を含む0〜9までの数値列で表現します。
例 0.123
また、eまたはEを使用して指数形式で表現することもできます。
例 123e2 または 123e+2 は 123×10の2乗 = 12300 に等しい
論理型
論理型は真偽を表すためのデータ型であり、JavaScriptでは、Booleanオブジェクトとして扱われる。 論理定数は、以下の2つがある。
- 真の論理定数: true
- 偽の論理定数: false
Null型
Null(ヌル)型はヌル(何もない)を表すためのデータ型であり、JavaScriptでは、Nullオブジェクトとして扱われる。 ヌル定数は、nullのみである。
文字列型
文字列型は、0個以上の文字の列を表すデータ型であり、JavaScriptでは、Stringオブジェクトとして扱われる。 文字列定数は、単一引用符または二重引用符で囲まれた0個以上の文字の列である。
例 '文字列' または "文字列"
また、以下のようなエスケープシーケンスを使用することもできる。 なお、ブラウザによっては記号「\(バックスラッシュ)」の部分が「¥」で表示されているかもしれません。 日本語環境においては、どちらも同じコードが割り当てられているためです。
エスケープシーケンス | コード | 名前 | シンボル |
---|---|---|---|
\b | 0x0008 | 後退 | <BS> |
\t | 0x0009 | 水平タブ | <HT> |
\n | 0x000A | ラインフィード | <LF> |
\v | 0x000B | 垂直タブ | <VT> |
\f | 0x000C | フォームフィード | <FF> |
\r | 0x000D | 改行 | <CR> |
\" | 0x0022 | 二重引用符 | " |
\' | 0x0027 | 単一引用符 | ' |
\\ | 0x005C | バックスラッシュ | \ |
例 "abc\\" → 文字列「abc\」
JavaScriptにおいて文字列は、Stringオブジェクトとして扱われます。そのためプロパティとメソッドを持っています。 ここでは主なプロパティとメソッドを上げておきます。
プロパティ |
---|
|
メソッド |
|
では、以下にいくつかのメソッドをテストするサンプルを掲載しておきます。 ファイル名は、JavaScript外部ファイルを「test.js」として以下の内容を、
var str = "abc89日本語だ日本語だ89ABC";
var val1 = str.length;
var val2 = str.charAt(3);
var val3 = str.indexOf("日本", 0);
var val4 = str.lastIndexOf("日本", 17);
var val5 = str.substring(5, 9);
var val6 = str.toLowerCase();
XHTMLファイルを「test.html」とし、以下の内容を入力し、それぞれ同一ディレクトリに配置します。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta http-equiv="Content-Script-Type" content="text/javascript" />
<title>Stringオブジェクトのプロパティ、メソッド</title>
<script type="text/javascript" src="test.js"></script>
</head>
<body>
<form action="test.html">
<p>
<input type="button" value="lengthテスト" onclick="alert(val1);" />
<input type="button" value="charAt()テスト" onclick="alert(val2);" />
<input type="button" value="indexOf()テスト" onclick="alert(val3);" />
<input type="button" value="lastIndexOf()テスト" onclick="alert(val4);" />
<input type="button" value="substring()テスト" onclick="alert(val5);" />
<input type="button" value="toLowerCase()テスト" onclick="alert(val6);" />
</p>
</form>
</body>
</html>