パソコン関連の書籍等を読んで試したりしながらアウトプットしまくります。

アウトプットしながら学ぶ

JavaScript プログラミング

JavaScriptの行末のセミコロンは省略しても良い?

投稿日:

JavaScriptのソースコードを読んでいたら、あるはずの場所にセミコロンが無いものを見つけました。
JavaScript初心者なので、行末のセミコロンは省略しても良いものなのか?疑問に思いました。

こちらの本を読んでいます。
これ1冊でゼロから学べる Webプログラミング超入門 ーHTML,CSS,JavaScript,PHPをまるごとマスター

書籍の中のリスト3-12のコードです。

obj.name = 'create element'
obj.className = 'newelement';
obj.textContent = "No, " + count++;
event.target.appendChild(obj);

この部分の1行目にセミコロンがありません。
他の行はあるので、必要なものだと思います。

調べてみたところ、一応、セミコロンを自動補完する機能があるので、
省略可能なのですが、コードによっては挙動が変わってしまうので、
しっかりつけたほうがよいとのことです。

Google Chromeのディベロッパーツールのコンソールで挙動を調べてみました。

var a=1;
var b=1;
a++;
b;
console.log("a = " + a);
console.log("b = " + b);

結果は、

a = 2
b = 1

1つセミコロンをはずしてみました。

var a=1;
var b=1;
a++
b;
console.log("a = " + a);
console.log("b = " + b);

正しい結果がでます。

a = 2
b = 1
var a=1;
var b=1;
a++
b
console.log("a = " + a);
console.log("b = " + b);

もう一つはずしてみました。
正しい結果がでます。

a = 2
b = 1

こんなことしないと思いますが、改行を入れてみました。

var a=1;
var b=1;
a
++
b
console.log("a = " + a);
console.log("b = " + b);

結果が逆になりました。

a = 1
b = 2

ただ次のようにした場合、エラーになるので、
改行を入れるのはありえないことかもしれません。

var a=1;
var b=1;
a
++;
b
console.log("a = " + a);
console.log("b = " + b);

こういうことがあるので、セミコロンは入力すべきです。







-JavaScript, プログラミング

Copyright© アウトプットしながら学ぶ , 2024 AllRights Reserved Powered by AFFINGER4.