Baseline Widely available
var
문ì ë³ì를 ì ì¸íê³ , ì íì ì¼ë¡ ì´ê¸°íí ì ììµëë¤.
var x = 1;
if (x === 1) {
var x = 2;
console.log(x);
// Expected output: 2
}
console.log(x);
// Expected output: 2
구문
var varname1 [= value1 [, varname2 [, varname3 ... [, varnameN]]]];
varnameN
ë³ì ì´ë¦. ì´ë¤ ì í¨í ìë³ìë ë ì ììµëë¤.
valueN
ë³ìì ì´ê¸°ê°. ì´ë¤ ì í¨í ííë ë ì ììµëë¤.
ì´ëì ì ì¸ì´ ëì´ìë ê°ì ë³ìë¤ì ì´ë í ì½ëê° ì¤íë기 ì ì ì²ë¦¬ê° ë©ëë¤. varë¡ ì ì¸ë ë³ìì ë²ìë íì¬ ì¤í 문맥ì¸ë°, ê·¸ 문맥ì ëë¬ì¼ í¨ì, í¹ì í¨ìì ì¸ë¶ì ì ìì¼ë¡ ì ì¸ë ë³ìë ë ì ììµëë¤.
ì ì¸ë ë³ìë¤ì ê° í ë¹ì í ë¹ì´ ì¤íë ë ì ìë³ì(ì´ê²ì ì ì ì¤ë¸ì í¸ì íë¡í¼í°ê° ë©ëë¤)ì²ë¼ ìì±ì´ ë©ëë¤. ì ì¸ë ë³ìë¤ê³¼ ì ì¸ëì§ ìì ë³ìë¤ì ì°¨ì´ì ì ë¤ìê³¼ ê°ìµëë¤:
ì ì¸ë ë³ìë¤ì ë³ìê° ì ì¸ë ì¤í ì½í ì¤í¸(execution context) ììì ë§ë¤ì´ì§ëë¤. ì ì¸ëì§ ìì ë³ìë¤ì íì ì ìë³ì ì ëë¤.
function x() {
y = 1; // strict 모ëììë ReferenceError를 ì¶ë ¥í©ëë¤.
var z = 2;
}
x();
console.log(y); // ë¡ê·¸ì "1" ì¶ë ¥í©ëë¤.
console.log(z); // ReferenceError: z is not defined outside x를 ì¶ë ¥í©ëë¤.
ì ì¸ë ë³ìë¤ì ì´ë í ì½ëê° ì¤íë기 ì ì ë§ë¤ì´ì§ëë¤. ì ì¸ëì§ ìì ë³ìë¤ì ë³ìë¤ì í ë¹íë ì½ëê° ì¤íë기 ì ê¹ì§ë ì¡´ì¬íì§ ììµëë¤.
console.log(a); // ReferenceError를 ì¶ë ¥í©ëë¤.
console.log("still going..."); // ê²°ì½ ì¤íëì§ ììµëë¤.
var a;
console.log(a); // ë¸ë¼ì°ì ì ë°ë¼ ë¡ê·¸ì "undefined" ëë "" ì¶ë ¥í©ëë¤.
console.log("still going..."); // ë¡ê·¸ì "still going..." ì¶ë ¥í©ëë¤.
ì ì¸ë ë³ìë¤ì ë³ìë¤ì ì¤í ì½í ì¤í¸(execution context)ì íë¡í¼í°ë¥¼ ë³ê²½ëì§ ììµëë¤. ì ì¸ëì§ ìì ë³ìë¤ì ë³ê²½ ê°ë¥í©ëë¤. (e.g ìì ë ìë ììµëë¤.)
var a = 1;
b = 2;
delete this.a; // strict 모ëììë TypeError를 ì¶ë ¥í©ëë¤. ê·¸ë ì§ ìì¼ë©´ ìëì ì¼ë¡ ì¤í¨í©ëë¤.
delete this.b;
console.log(a, b); // ReferenceError를 ì¶ë ¥í©ëë¤.
// 'b' íë¡í¼í°ë ìì ëìê³ , ì´ëìë ì¡´ì¬íì§ ììµëë¤.
ì´ë¬í ì¸ê°ì§ ë¤ë¥¸ì ë문ì, ë³ì ì ì¸ ì¤ë¥ë ì기ì¹ìì ê²°ê³¼ë¡ ì´ì´ì§ ê°ë¥ì±ì´ ëìµëë¤. ê·¸ë¬ë¯ë¡ í¨ì ëë ì ì ë²ìì¸ì§ ì¬ë¶ì ìê´ìì´, íì ë³ì를 ì ì¸ íë ê²ì ì¶ì²í©ëë¤. ê·¸ë¦¬ê³ ECMAScript 5 ìì strict mode, ì ì¸ëì§ ìì ë³ìì í ë¹íë©´ ì¤ë¥ë¥¼ ì¶ë ¥í©ëë¤.
var í¸ì´ì¤í (hoisting)ë³ì ì ì¸ë¤ (ê·¸ë¦¬ê³ ì¼ë°ì ì¸ ì ì¸)ì ì´ë ì½ëê° ì¤í ë기 ì ì ì²ë¦¬í기 ë문ì, ì½ë ììì ì´ëìë ë³ì ì ì¸ì ìµììì ì ì¸í ê²ê³¼ ëë±í©ëë¤. ì´ê²ì ë³ìê° ì ì¸ë기 ì ì ì¬ì© ë ì ìë¤ë ê²ì ì미í©ëë¤. ë³ì ì ì¸ì´ í¨ì ëë ì ì ì½ëì ìë¨ì ì´ëíë ê²ê³¼ ê°ì íëì "í¸ì´ì¤í (hoisting)"ì´ë¼ê³ ë¶ë¦½ëë¤.
bla = 2;
var bla;
// ...
// ì ì ì¸ì ë¤ìê³¼ ê°ì´ ì묵ì ì¼ë¡ ì´í´íë©´ ë©ëë¤:
var bla;
bla = 2;
ì´ë¬í ì´ì ë¡, ê·¸ë¤ì ë²ì(ì ì ì½ëì ìë¨ ê·¸ë¦¬ê³ í¨ì ì½ëì ìë¨) ìë¨ì ë³ì를 íì ì ì¸í기를 ê¶ì¥í©ëë¤. ê·¸ë¬ë©´ ë³ìë í¨ì ë²ì (ì§ì)ì´ ëë©°, ì¤ì½í ì²´ì¸ì¼ë¡ í´ê²°ë ê²ì´ ë¶ëª í©ëë¤.
ìì ë ë³ìë¤ì ì ì¸ ë° ì´ê¸°í ë¨ì¼ 문ìì´ ê°ì¼ë¡ ë ë³ìë¤ í ë¹var a = "A";
var b = a;
// ë¤ìê³¼ ê°ì:
var a,
b = (a = "A");
ììì ì ì:
var x = y,
y = "A";
console.log(x + y); // undefinedA
ì¬ê¸°, xì yë ì´ë í ì½ë ì¤íí기 ì ì ì ì¸ëìë¤, í ë¹ì íì ë°ìíìë¤. "x = y
"ê° ì¤íë ë, y
ë ì¡´ì¬íì¬ ReferenceError를 ì¶ë ¥íì§ ìê³
ê°ì 'undefined
' ì
ëë¤. ê·¸ëì, xë
undefined ê°ì´ í ë¹ ë©ëë¤. ê·¸ë¦¬ê³ ëì, y
ë 'A'
ê°ì´ í ë¹ ë©ëë¤. ê²°ê³¼ì ì¼ë¡, 첫ë²ì§¸ ì¤ ì´íì, x === undefined && y === 'A'
, ì´ì ê°ì ê²°ê³¼ê° ë©ëë¤.
var x = 0;
function f() {
var x = (y = 1); // xë ì§ìë³ìë¡ ì ì¸ë©ëë¤. yë ìëëë¤!
}
f();
console.log(x, y); // 0, 1
// xë ììëë¡ ì ìì´ë¤
// y leaked outside of the function, though!
ì묵ì ì¸ ì ìë³ìì ì¸ë¶ í¨ì ë²ì
ì묵ì ì¸ ì ìë³ìê° ë ê²ì¼ë¡ ë³´ì´ë ë³ìë í¨ì ë²ì ë°ìì ë³ìë¤ì 참조í ì ìë¤.
var x = 0; // xë ì ìì¼ë¡ ì ì¸ëìê³ , 0ì¼ë¡ í ë¹ë©ëë¤.
console.log(typeof z); // undefined, zë ìì§ ì¡´ì¬íì§ ììµëë¤.
function a() {
// a í¨ì를 í¸ì¶íì ë,
var y = 2; // yë í¨ì aìì ì§ìë³ìë¡ ì ì¸ëìì¼ë©°, 2ë¡ í ë¹ë©ëë¤.
console.log(x, y); // 0 2
function b() {
// b í¨ì를 í¸ì¶íììë,
x = 3; // ì¡´ì¬íë ì ì xê°ì 3ì í ë¹, ìë¡ì´ ì ì var ë³ì를 ë§ë¤ì§ ììµëë¤.
y = 4; // ì¡´ì¬íë ì¸ë¶ yê°ì 4를 í ë¹, ìë¡ì´ ì ì var ë³ì를 ë§ë¤ì§ ììµëë¤.
z = 5; // ìë¡ì´ ì ì z ë³ì를 ìì±íê³ 5를 í ë¹ í©ëë¤.
} // (strict modeììë ReferenceError를 ì¶ë ¥í©ëë¤.)
b(); // í¸ì¶ëë bë ì ì ë³ìë¡ z를 ìì±í©ëë¤.
console.log(x, y, z); // 3 4 5
}
a(); // í¸ì¶ëë aë ëí b를 í¸ì¶í©ëë¤.
console.log(x, z); // 3 5
console.log(typeof y); // undefined yë function aìì ì§ì ë³ìì
ëë¤.
ëª
ì¸ì ë¸ë¼ì°ì í¸íì± ê°ì´ 보기
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4