« 連想配列 | トップページ | 組合せ »

2018年11月18日 (日)

;(セミコロン)と var

JScript も Javascript と同様に、
行末の ;(セミコロン)と 変数宣言時の var を記述するのが一般的ですが
省略しても、スプリクトの実行は可能なので、少し調べてみました。

JSprict コードの記述 より 抜粋

通常、新しい行に移ると、新しいステートメントの開始になります。
ステートメントの終わりを明示的に記述することをお勧めします。
ステートメントの終わりを明示的に記述するには、
ステートメントの最後にセミコロン (;) を記述します。

JSprictの変数  より 抜粋
JScript では、宣言ステートメントからvar キーワードを省略することが
許されていますが、このような構文には安全性の面で問題があります。
宣言で var キーワードを省略すると、変数の被参照可能範囲は
JScript のインタープリタによってグローバル スコープに設定されます。

英文の直訳でしょうか、解説の真意がわかりづらいです。
個人的な解釈ですが、
セミコロンについては、あくまでも、明示的な推奨であり、
行末が、ステートメントの終了であれば、
省略しても、次行は新しいステートメントの開始になるということですね。
var については、省略するとグローバル変数になるので、
ローカル変数として扱う時は、注意が必要ということの様です。

|

« 連想配列 | トップページ | 組合せ »

コメント

グローバル変数は気にする必要のない、ローカル変数のスコープ(有効範囲)が言語によって微妙に上下したりするのがややこしいですね。

投稿: 秋天越 | 2018年11月20日 (火) 20時46分

秋天越さん、お久ぶりです。

>微妙に上下したりするのがややこしいですね。

そうなんですか、複数の言語を扱うと大変ですね。
AWKでは、ローカル変数なんて意識したことはなかったので
いろいろ勉強になります。

投稿: somem | 2018年11月20日 (火) 23時37分

コメントを書く



(ウェブ上には掲載しません)




トラックバック


この記事へのトラックバック一覧です: ;(セミコロン)と var:

« 連想配列 | トップページ | 組合せ »