"T. Sugita" <nws-sugi@bp.iij4u.or.jp> wrote in message
news:bs8vke$msl$1@news00.iij4u.or.jp...
> すぎたです。
>
> In message news:bs6p8o$osf$1@news511.nifty.com
> <kounoike@mbh.nifty.com> wrote ...

> ECMA-262 のスコープって、あちこちに書いてあるんですよね。
> たぶん関連するのは
>   10.1.3
>   10.1.4
>   10.2.*
>   12.2
>   13
> あたりかな?・・・(英語なので、?付き(^^;;)

 ナカジマさん,杉田さん情報ありがとうございます。で,至った結論は,forにおけ
るvar iは使用される場所により,グローバルにもなるし,function localでもある
ということですかね。というのも,下の場合increout() の変数 i が宣言されていな
い状態のようなので。
ともかく,ECMA-262の規格ってよう分からんというのが正直な感想です。(もっと分
かりやすくそれぞれの説明に例でも付けてくれればいいのに。この規格の解説書みた
いなのは無いのかな。)インタープリター言語の中でも,もやもやとしたはっきりし
ない仕様(私にとって)に思えて仕方ない。言語構造を理解した上で使うには相当難
しいと感じます。読めば読むほど,分からなくなる私にとっては厄介な言語です。

   var x = new Array('0','1','2','3','4','5','6','7','8','9');

   fortest();

   function fortest() {
      function increin() {
         do
         i++;
         while (!(i < 5 || i >= 7))
         return i;
      }

      document.write('------increin()-------' + '<BR>');
      for(var i = 2; i < x.length; increin()) {
         document.write(x[i] + '<BR>');
      }

      document.write('------increout()-------' + '<BR>');
      for(var i = 2; i < x.length; increout()) {
         document.write(x[i] + '<BR>');
      }
   }

   function increout() {
      do
      i++;
      while (!(i < 5 || i >= 7))
      return i;
   }

-- 
******************************
   keizi kounoike
******************************