基本データ型のラッパークラス

広告

JavaScriptではデータ型として基本データ型(数値、文字列、論理値)とオブジェクトが用意されています。オブジェクトは様々な種類があるのですが、それはオブジェクトの元になるクラスが複数あるためです。(※正確には違いますがまた別のページで解説します)。

オブジェクトにはその元になっているクラスにメソッドと呼ばれる関数が定義されています。その関数を呼び出すことでオブジェクトに対する様々な操作を行うことができます。

下記の例を見てください。

var ary = new Array("Tokyo", "Nagoya", "Osaka");
ary.sort();

Arrayクラスのオブジェクトである配列を作成した後で、Arrayクラスで定義されているsortメソッドを使って配列の要素を並べ替えています。このようにオブジェクトには、その元になっているクラスで定義されたメソッドを使うことができます。

それに対して基本データ型である数値や文字列はクラスを元に作成されたオブジェクトではありませんのでメソッドも用意されていません。ところが文字列に対しても次のようにメソッドを使うことができます。

var str = "東京都中央区日本橋".slice(3, 6);

JavaScriptでは基本データ型にそれぞれ対応するラッパークラスと呼ばれるクラスが用意されています。先ほどの例のように文字列に対してメソッドを呼び出すと、文字列に対応するラッパークラスのオブジェクトが自動的に作成され、そのオブジェクトに対してメソッドが実行されます。

基本データ型に対応するラッパークラスは次の通りです。

数値     Numberクラス
文字列   Stringクラス
論理値   Booleanクラス

このような仕組みが用意されているため、基本データ型の値に対してもあたかもオブジェクトに対して行っているようにメソッドを呼び出すことができます。各ラッパークラスにはそれぞれ便利なメソッドが用意されているので基本データ型の値に対しても様々な操作を行うことができます。

各クラスで定義されているメソッドやプロパティにはついては各クラスの解説を確認して下さい。

サンプルコード

では簡単なサンプルで試してみます。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<meta http-equiv="Content-Script-Type" content="text/javascript">
<title>JavaScript テスト</title>
</head>
<body>

<script type="text/javascript" src="./js/script4_1.js">
</script>

</body>
</html>
document.write("<p>");

document.write("東京都中央区日本橋" + "<br />");
document.write("東京都中央区日本橋".slice(0, 6) + "<br />");
document.write("東京都中央区日本橋".slice(3, 6) + "<br />");

document.write("</p>");

document.write("<p>");

var num = 0.0049874;
document.write(num + "<br />");
document.write(num.toExponential() + "<br />");
document.write(num.toExponential(2) + "<br />");

document.write("</p>");

上記を実際にブラウザ見てみると次のように表示されます。

p4-1

( Written by Tatsuo Ikura )