Re: for 〜 next ループ(Re: TEXTAREA と 外部jsファイル
すぎたです。
In message news:bsbsi8$b7i$1@news511.nifty.com
<kounoike@mbh.nifty.com> wrote ...
> ナカジマさん,杉田さん情報ありがとうございます。で,至った結論は,forにおけ
> るvar iは使用される場所により,グローバルにもなるし,function localでもある
> ということですかね。
for における var i に限ったことではなく、
var i がグローバルに現れると、global に生成される。
var i が関数の中に現れると、その関数内で local scope が生成される。
(ローカルにメモリが確保される)
block scope ではないので、新たな関数内でなければ、複数回現れると、
新たに生成(と開放)され、スコープ範囲は同じ範囲となる。
i を使用する際、ローカルスコープに無ければ、最大、グローバルまで
遡って検索する。
(例の increout() だと、グローバルには i は無いのでエラーで止まっている)
ということじゃないかと思います。
ローカルに記述した変数へのアクセスに関しては、new を使った際に
結構便利で、よく利用されますよね。
# あまり適切ではありませんが・・・
function Obj() {
var s = 0;
this.init = function (v) {
s = v;
}
this.add = function (v) {
s += v;
}
this.print = function () {
alert(s);
}
}
var x = new Obj();
x.init(0);
x.add(1);
x.print();
for (var i= に限っていないという点は、block scope でないことから、
test();
function test() {
var i = 10;
{
var i = 20;
alert(i); // 20
}
alert(i); // 20
}
となりますよね。つまり、
var i;
for (i=
と考えても同じではないかと思います。
> ともかく,ECMA-262の規格ってよう分からんというのが正直な感想です。
たしかに。
せめて日本語だとありがたいところです。(^^;;
--
杉田
sugi-nws@bk.iij4u.or.jp
Fnews-brouse 1.9(20180406) -- by Mizuno, MWE <mwe@ccsf.jp>
GnuPG Key ID = ECC8A735
GnuPG Key fingerprint = 9BE6 B9E9 55A5 A499 CD51 946E 9BDC 7870 ECC8 A735