Yanor.net/
Wiki
Blog
GitHub
Sandbox
開始行:
* 変数・関数のスコープ [#lc3fb2cd]
- スコープはグローバルとローカルの2種類。
- 変数のスコープは関数単位で、ブロックスコープではない。
- グローバル変数は、関数の外で宣言する。もしくは(関数の...
- ローカル変数は、関数の中でvarを付けて宣言する。
- 関数は変数と同じスコープを持つ。
var foo = 1;
function myfunc1() {
alert(foo); // 1
bar = 2;
var baz = 3;
}
function myfunc2() {
alert(bar); // 2
alert(baz); // bazはmyfunc1()の中のローカル変...
}
myfunc1();
myfunc2();
** グローバル変数はwindowオブジェクトに属する [#g8b3e6d4]
var foo = 1;
alert(window.foo); // もしくはwindow["foo"]
** 関数内で宣言された変数は、関数のどこで宣言していても、...
関数内で宣言された変数は、関数のどこで宣言していても、関...
var foo = 1
function myfunc() {
alert(foo); // Undefined (1)
var foo = 2;
alert(foo); // 2 (2)
}
myfunc();
(1)でグローバル変数fooを参照しないのは、その下の行でロー...
var foo = 1
function myfunc() {
var foo;
alert(foo);
foo = 2;
alert(foo);
}
myfunc();
** 関数のネスト [#jf4ca0fd]
function outer() {
function inner() {
return "INNER";
}
return inner();
}
outer(); // => "INNER"
inner(); // => エラー発生
** クロージャ [#y3ac9778]
function counter() {
var n = 0;
return function () {
return n++;
}
}
var c = counter();
alert(c()); // 0
alert(c()); // 1
alert(c()); // 2
終了行:
* 変数・関数のスコープ [#lc3fb2cd]
- スコープはグローバルとローカルの2種類。
- 変数のスコープは関数単位で、ブロックスコープではない。
- グローバル変数は、関数の外で宣言する。もしくは(関数の...
- ローカル変数は、関数の中でvarを付けて宣言する。
- 関数は変数と同じスコープを持つ。
var foo = 1;
function myfunc1() {
alert(foo); // 1
bar = 2;
var baz = 3;
}
function myfunc2() {
alert(bar); // 2
alert(baz); // bazはmyfunc1()の中のローカル変...
}
myfunc1();
myfunc2();
** グローバル変数はwindowオブジェクトに属する [#g8b3e6d4]
var foo = 1;
alert(window.foo); // もしくはwindow["foo"]
** 関数内で宣言された変数は、関数のどこで宣言していても、...
関数内で宣言された変数は、関数のどこで宣言していても、関...
var foo = 1
function myfunc() {
alert(foo); // Undefined (1)
var foo = 2;
alert(foo); // 2 (2)
}
myfunc();
(1)でグローバル変数fooを参照しないのは、その下の行でロー...
var foo = 1
function myfunc() {
var foo;
alert(foo);
foo = 2;
alert(foo);
}
myfunc();
** 関数のネスト [#jf4ca0fd]
function outer() {
function inner() {
return "INNER";
}
return inner();
}
outer(); // => "INNER"
inner(); // => エラー発生
** クロージャ [#y3ac9778]
function counter() {
var n = 0;
return function () {
return n++;
}
}
var c = counter();
alert(c()); // 0
alert(c()); // 1
alert(c()); // 2
ページ名: