JS、jqueryのセミコロンをつけるべきかつけないべきか区別の方法がわかりません。
下記ソースの一番最後に入れるべきかどう区別するのでしょうか?
//ある要素の高さをある要素と同じ高さにする-768以下 $(window).load(function(){ var parentHeight = $('.slide__item').height(); if($(window).width() < 768) { $("#slide").height(parentHeight); } //ある要素の高さをある要素と同じ高さにする-768以上 var parentHeight = $('.split-screen-inner-secondly').height(); if($(window).width() > 768) { $(".slide__item").height(parentHeight); } })
下記stackoverflowの情報を見ると式の区切りに基本的につけるが下記だけは例外で書かないということが書いてありました。
例外
if-else、for、while、switchなどのブロックを利用する制御構造
例
if($(window).width() < 768) {
$("#slide").height(parentHeight);
}
上記の最後にセミコロンがないのはまさにifなので必要ない。
今回は.loadメソッドの値の終了がさいごなので、if-else、for、while、switchなどのブロックを利用する制御構造に該当しない式の敷居なので必要だがすべてのセミコロンは省略もできるという認識でよいでしょうか?
また、式の区切がどこかということも複雑だとよくわからなくなるのですが、
}が来たら必ず式の区切など、文法上の決まりはないのでしょうか?
*セミコロンについてstackoverflow
http://ja.stackoverflow.com/questions/8189/javascript-function%E6%96%87%E3%81%A7%E3%82%BB%E3%83%9F%E3%82%B3%E3%83%AD%E3%83%B3
・式の区切
if-else、for、while、switchなどのブロックを利用する制御構造の末尾にセミコロンは必要ありません。(しかしdo-whileの末尾にはセミコロン付ける)
それ以外の式の区切りには、全てセミコロンが必要だとお考え下さい。
functionの末尾にもセミコロンは必要ありませんが、var func = function(){};のような、変数に関数を代入するような書き方をした場合には演算子を利用した式になりますので、末尾にセミコロンが必要になります。
セミコロンを省略しても問題なく動作することはありますが、ブラウザの種類によっては動作しなくなることもございますので、セミコロンを省略するよりは、必要ない箇所にセミコロンがあるほうが、プログラムの動作的には安心です。(むかしセミコロンを省略したらChromeやSafariでは動作するのにIEでは動かなかったことがありました。)
しかし、個人的に以下のようなセミコロンが必要無い箇所にセミコロンが書いてあるコードを見つけたら、取り除きたいなあという気持ちになってしまいまいますので、周りの共同開発者の皆様と相談して決めていくのがよろしいかと思われます。
if( home ){
x = y + z;}; // ←ここ
あまりコードの中で使われているのを見る機会が少ないですが、Javascriptにはループを一気に抜けたり進めたりすることが出来るラベルという制御構造も用意されており、ややこしいことにこのラベルにはコロンを利用してセミコロンは必要ありません。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2016/11/01 06:33
2016/11/01 08:26
退会済みユーザー
2016/11/01 12:03
2016/11/01 23:06