MozillaZine.jp フォーラム
https://forums.mozillazine.jp/

JavaScript ブロック内定義変数の挙動
https://forums.mozillazine.jp/viewtopic.php?f=30&t=9339
ページ 11

作成者:  zxcv [ 2009年11月04日(水) 23:38 ]
記事の件名:  JavaScript ブロック内定義変数の挙動

コード:
    var v1 = 'OK';
    {
      var v1 = 'NG';
    }
    alert(v1);


Firefox3.5.4 でこのコードを実行すると、「NG」が alert表示されます。 「OK」が表示されるか、せめてエラーになって欲しいと思うのですが、こういう規格なんでしょうか?

作成者:  Piro [ 2009年11月05日(木) 01:24 ]
記事の件名:  Re: JavaScript ブロック内定義変数の挙動

var宣言はそういう仕様です。
ブロックスコープを使いたい場合は、JavaScript 1.7から導入されたletを使う必要があります。
http://nanto.asablo.jp/blog/2006/07/08/437419
こちらの記事ではletを使わずにwithでそれっぽく書く方法も紹介されてます。

作成者:  zxcv [ 2009年11月05日(木) 02:04 ]
記事の件名:  Re: JavaScript ブロック内定義変数の挙動

そうだったんですか。 ありがとうございます。

ブロックスコープって言うんですね、これ。 無いと、使い捨て変数の名前決めに思考を奪われちゃうんですよね。

let と with は知らなかったので、勉強します。

# 本当は、新たに文法を覚えなくても良い方法がうれしかったのですが。

ページ 11 All times are UTC + 9 hours
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/