JavaScript 入門

ホーム > JavaScript の基本 > 変数

変数

JavaScript では変数を使うときはあらかじめそれを宣言しなければなりません。

JavaScript で変数を宣言するには var を使います。

変数宣言時に、型は指定しません。

例えば C 言語のように、整数型 (int) を使いたいからと言って、int i; などとは書きません。

文字列の宣言の場合でも、整数の場合でも同様に var を使えば OK です。

変数の型はどうなる?

整数型とか文字列型など関わらず、変数は var で宣言できると書きました。

しかし、型が存在しないか、というとそうではありません。次の例をみてください。

<html>
<body>
<p>
<script type='text/javascript'>
var i = 0;
document.write( 'typeof i: ' + typeof i + '<br>');

i = 'Hello';

document.write( 'typeof i: ' + typeof i + '<br>' );
</script>
</p>
</body>
</html>

この結果は次の通りになります。

typeof i: number
typeof i: string

変数 i は当初 0 を代入した時点で number 型として認識され、次いで 'Hello' という文字列を代入したところで string 型になりました。

表面上は型は明示的にしていしなくとも、内部では型を持っていることに注意が必要です。

これがどんな場合に問題になるかと言うと、例えば、次のような場合です。

<html>
<body>
<p>
<script type='text/javascript'>
var i = 1;
var j = '5';

document.write( i + j );
</script>
</p>
</body>
</html>

ここで i には 1 をセットしているので number 型です。しかし、j には引用符(')付きの '5' を代入しているので、string 型になっています。

この足し算の結果は次のようになってしまいます。

15

なんと string 同士の足し算として扱われてしまい、 1 + '5' = '15' という結果になってしまいます。

もし、数字として 1 + 5 = 6 としたいのなら、次のようにする必要があります。

<html>
<body>
<p>
<script type='text/javascript'>
var i = 1;
var j = '5';

document.write( i + parseInt(j) );
</script>
</p>
</body>
</html>

parseInt メソッドを用いて、文字列を数字として解釈することで、数字同士の足し算にしています。

尚、parseInt メソッドというのは JavaScript の Global オブジェクトのメソッドです。

ホーム > JavaScript の基本 > 変数