6
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

ZOZOテクノロジーズ #3Advent Calendar 2019

Day 4

VBScriptでの変数宣言の巻き上げの罠

Last updated at Posted at 2019-12-03

以下のスクリプトは変数sを宣言せずに代入しているために、エラーになります。

Option Explicit
s = "hoge"

しかし、以下のスクリプトはエラーになりそうですが、エラーになりません。
2行目の時点ではsの宣言が行われていないにも関わらず、エラーなく処理を行うことができます。

Option Explicit
s = "hoge"
Dim s

実は、VBScriptにはJavaScriptと同様に変数の巻き上げを行う仕様があります。

そのため、以下のスクリプトと等価になります。

Option Explicit
Dim s
s = "hoge"

JavaScriptと同様に意図しない挙動につながることが多いため、変数の巻き上げは起こさないようにコーディングをするように心がける必要があります。
具体的には、変数宣言はスコープの先頭部分で行うようにするのが無難です。

6
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?