block
Baseline
Widely available
This feature is well established and works across many devices and browser versions. Itâs been available across browsers since 2015ë 7ì.
ë¸ë¡ë¬¸(ëë ë¤ë¥¸ ì¸ì´ììë ë³µí©ë¬¸)ì 0ê° ì´ìì 구문ì 묶ì ë ì¬ì©í©ëë¤. ë¸ë¡ì í ìì ì¤ê´í¸ë¡ 구ì±íë©° ì íì ì¼ë¡ ë ì´ë¸ì ë¶ì¼ ì ììµëë¤.
ìëí´ ë³´ê¸°
var x = 1;
let y = 1;
if (true) {
var x = 2;
let y = 2;
}
console.log(x);
// Expected output: 2
console.log(y);
// Expected output: 1
문ë²
>ë¸ë¡ë¬¸
{
StatementList;
}
ë ì´ë¸ë ë¸ë¡ë¬¸
LabelIdentifier: {
StatementList;
}
StatementList-
ë¸ë¡ë¬¸ ë´ì 구문.
LabelIdentifier-
ìê°ì ì¸ êµ¬ë¶, ëë
break문ì ëìì¼ë¡ ì¸ label.
ì¤ëª
ë¤ë¥¸ ì¸ì´ìì ë¸ë¡ë¬¸ì ë³µí©ë¬¸ì´ë¼ê³ ë¶ë¥´ê¸°ë í©ëë¤. ë¸ë¡ë¬¸ì ì°ë©´ JavaScriptê° íëì 문ì 기ëíë ê³³ìì ë¤ìì 문ì ì¤íí ì ììµëë¤. JavaScriptìì ì´ë ê² ë¬¸ì 묶ëê±´ íí ì°ì´ë 기ë²ì ëë¤. ë°ë ê°ë ì¼ë¡ë ê³µë°±ë¬¸ì´ ìì¼ë©°, ì´ë íëì 구문ì 기ëíë ê³³ì ì무ê²ë ì ê³µíì§ ìë ê²ì ëë¤.
ë¸ë¡ë¬¸ì íí if...elseê³¼ for문 ê´ë ¨í´ì ì¬ì©ë©ëë¤.
ìì
>ì격íì§ ìì 모ëìì ë³ì ëë í¨ì ì ì¸ì ë¸ë¡ ë²ì ê·ì¹
var ì¬ì© ì
varë¡ ì ì¸í ë³ìë ë¸ë¡ ë²ì를 ê°ì§ì§ ììµëë¤.
ë¸ë¡ ë´ìì ì ì¸í ë³ìì ë²ìë í¨ìë ì¤í¬ë¦½í¸ê° ëì´, ê° í ë¹ì ìí¥ì´ ë¸ë¡ ë°ê¹¥ê¹ì§ 미칩ëë¤.
ë¤ë¥¸ ë§ë¡ë ë¸ë¡ë¬¸ì´ ë²ì를 ë§ë¤ì§ ììµëë¤.
"ë
립" ë¸ë¡ë¬¸ë ì í¨í 구문ì´ê¸´ íì§ë§, Cì Javaì ë¸ë¡ì 기ëíë걸 JavaScriptììë 기ëíë©´ ìë©ëë¤.
ì를 ë¤ì´ë³´ê² ìµëë¤.
ì격íì§ ìì 모ëìì varë¡ ì ì¸í ë³ì í¹ì í¨ì ì ì¸ì ìí´ ìì±ë ë³ìë ë¸ë¡ ë²ì를 ê°ì§ì§ ììµëë¤.
ë¸ë¡ ë´ìì ì ì¸í ë³ìë ì´ ë³ì를 í¬í¨í í¨ìë ì¤í¬ë¦½í¸ê¹ì§ ë²ìê° ì§ì ëë©°, ë³ìì ì¤ì í¨ê³¼ë ë¸ë¡ì ëì´ìë ì§ìë©ëë¤. ì¦, ë¸ë¡ë¬¸ì ë²ìê° ëì
ëì§ ììµëë¤. ì:
var x = 1;
{
var x = 2;
}
console.log(x); // ì½ìì 2를 ì¶ë ¥í©ëë¤
ì½ì ì¶ë ¥ ê²°ê³¼ë 2ì
ëë¤. ë¸ë¡ ìì var xê³¼ ë¸ë¡ ìì var x 문과 ëì¼í ë²ìì ì기 ë문ì
ëë¤.
ì격íì§ ìì ì½ëììë, ë¸ë¡ ë´ë¶ì í¨ì ì ì¸ì´ ì´ìíê² ëìí©ëë¤. ì¬ì©íì§ ë§ììì¤.
ì격 모ëìì let, const í¹ì í¨ì ì ì¸ì ë²ì ê·ì¹
ë°ë©´ letê³¼ constë¡ ì ì¸í ìë³ìë ë¸ë¡ ë²ì를 ê°ì§ëë¤.
let x = 1;
{
let x = 2;
}
console.log(x); // 1ì´ ì½ìì ì°íëë¤.
x = 2ë ì ì¸í ë¸ë¡ì¼ë¡ ë²ìê° ì íë©ëë¤.
constë ë§ì°¬ê°ì§ì
ëë¤.
const c = 1;
{
const c = 2;
}
console.log(c); // 1ì´ ì½ìì ì°íë©°, SyntaxError ìì¸ê° ë°ìíì§ ììµëë¤.
ë¸ë¡ ë´ì const c = 2ê° SyntaxError: Identifier 'c' has already been declared를 ëì§ì§ ìë ì ì 주목íì¸ì. ë¸ë¡
ë²ì ìì´ë¼ ë³ê°ì ìë³ìì´ê¸° ë문ì
ëë¤.
ES2015ì ì격 모ëë¶í°, ë¸ë¡ ë´ì í¨ìë í´ë¹ ë¸ë¡ì¼ë¡ ë²ìê° ì íë©ëë¤. ES2015 ì´ì ì ì격 모ëììë ë¸ë¡ ë 벨 í¨ì를 ì¬ì©í ì ìììµëë¤.
ëª ì¸
| Specification |
|---|
| ECMAScript® 2027 Language Specification> # sec-block> |