現役プログラマーによるJavaScript奮闘記4!~続変数宣言編~

前回は変数を利用しての「Hello,World!」の出力をしました。

今回はもう少し深い(?)内容を書いていきます。

■JavaScriptの変数宣言について

他のプログラミング言語を知ってる人向けの内容ですね。
初めてのプログラミング言語がJavaScriptの人の場合「ほーん」って内容になると思います。

JavaScriptの変数に型は無いです。
JavaScriptに限らず変数の型宣言をしない言語は他にもありますが、
Javaを一番触っている自分としては違和感があるところです。

多分型指定しない言語から入った人からするとわざわざ宣言しないといけないというのはわずらわしいのでしょうが、、、

ちょっと説明します。

変数宣言をするときに型指定をする言語としなくて良い言語があります。
Javaという言語は型指定が必須です。

Javaの変数宣言は例えば数字の場合
int val;
と宣言し、このintには数字(もっというと整数のみ)しか代入することができず、文字列を入れることはできません。
文字列を入れようとするとプログラムが異常終了します。


int val;
val = 10;
val = "Hello,World!"; ←ここで異常終了します。

JavaScriptの場合
var val;
と宣言した場合、valには数字も文字も何でも代入することができます。


var val;
val = 10;
val = "Hello,World!";

としても異常終了はせず、正常に動き続けます。

どちらがいいというものではなく、どちらもメリットデメリットはありますが、
Javaになれている個人的にはvalに何が入っているかわからないというのはちょっと怖かったりします。

これに限らずJavaScriptは結構自由度が高い印象です。
Javaはちょっとでもお作法を守らないと異常終了します。
JavaScriptはなんかわからないけど動き続けます。

1人でちょちょっと書く分にはJavaScriptは楽でいいと思いますが、大規模開発するときは制約が少ないので
新人がやりたい放題ということも考えられます。。。

■もう少し変数

変数の足し算引き算とかも勿論できます。


var val;
val = 10;
val = val + 1;
document.write(val);

とすると、何が出力されるでしょうか。

これですね。


<!DOCTYPE html>
<html>
<head>
<title>サンプル</title>
</head>
<body>
<script>
var val;
val = 10;
val = val + 1;
document.write(val);
</script>
</body>
</html>

11と出力されます。

それでは

var val;
val = 10;
val + 1;
document.write(val);

だとどうなるでしょうか。

これは10が出力されます。

上の例が11になったのはvalにval(10が代入されている)+1の結果を代入しているから11になるのであって、
下の例ではval + 1という計算をしたのみなので、valの中身は10のままです。
そのため10が出力されるというわけです。

初心者がよくやりがちな内容なので、覚えておきましょう。

もちろん


var val;
val = 10;
document.write(val + 1);

こうした場合は11が出力されます。

今回は変数での計算方法について記載しました。
次回は変数で守りたい決まり事について記載します。

コメント

タイトルとURLをコピーしました