ëë¤ìì ìë°ì¤í¬ë¦½í¸ ì í리ì¼ì´ì ì ì¬ì©ìë ìë²ë¡ë¶í° ì ë ¥ë°ì ì 보를 ì²ë¦¬íë ë°©ìì¼ë¡ ëìí©ëë¤. ìëì ê°ì´ ë§ì´ì£ .
- ì¨ë¼ì¸ ì¼í몰 â í매 ì¤ì¸ ìíì´ë ì¥ë°êµ¬ë ë±ì ì ë³´
- ì±í ì í리ì¼ì´ì â ì¬ì©ì ì ë³´, ë©ìì§ ë±ì ì ë³´
ë³ìë ì´ë¬í ì 보를 ì ì¥íë ì©ëë¡ ì¬ì©ë©ëë¤.
ë³ì
ë³ì(variable)ë ë°ì´í°ë¥¼ ì ì¥í ë ì°ì´ë âì´ë¦ì´ ë¶ì ì ì¥ìâ ì ëë¤. ì¨ë¼ì¸ ì¼í몰 ì í리ì¼ì´ì ì 구ì¶íë ê²½ì° ìíì´ë ë°©ë¬¸ê° ë±ì ì 보를 ì ì¥í ë ë³ì를 ì¬ì©íì£ .
ìë°ì¤í¬ë¦½í¸ìì let í¤ìë를 ì¬ì©í´ ë³ì를 ìì±í©ëë¤.
ìë 문(statement)ì 'messageâë¼ë ì´ë¦ì ê°ì§ ë³ì를 ìì±(ì ì¸)í©ëë¤.
let message;
ì´ì í ë¹ ì°ì°ì =를 ì¬ì©í´ ë³ì ìì ë°ì´í°ë¥¼ ì ì¥í´ ë´
ìë¤.
let message;
message = 'Hello'; // 문ìì´ì ì ì¥í©ëë¤.
문ìì´ì´ ë³ìì ì°ê²°ë ë©ëª¨ë¦¬ ììì ì ì¥ëì기 ë문ì, ë³ìëª ì ì´ì©í´ 문ìì´ì ì ê·¼í ì ìê² ëììµëë¤.
let message;
message = 'Hello!';
alert(message); // ë³ìì ì ì¥ë ê°ì ë³´ì¬ì¤ëë¤.
ìëì ê°ì´ ë³ì ì ì¸ê³¼ ê° í ë¹ì í ì¤ì ìì±í ìë ììµëë¤.
let message = 'Hello!'; // ë³ì를 ì ìíê³ ê°ì í ë¹í©ëë¤.
alert(message); // Hello!
í ì¤ì ì¬ë¬ ë³ì를 ì ì¸íë ê²ë ê°ë¥í©ëë¤.
let user = 'John', age = 25, message = 'Hello';
ì´ë ê² ìì±íë©´ ì½ëê° ì¢ ë ì§§ì ë³´ì´ê¸´ íì§ë§ ê¶ì¥íë ë°©ë²ì ìëëë¤. ê°ë ì±ì ìí´ í ì¤ìë íëì ë³ì를 ìì±í´ì£¼ì¸ì.
í ì¤ì í ê°ì ë³ì를 ìì±íë©´ ì½ëê° ê¸¸ì´ ë³´ì´ì§ë§ ì½ê¸°ì í¸í©ëë¤.
let user = 'John';
let age = 25;
let message = 'Hello';
ì´ë¤ ì¬ëë¤ì ì´ë° ë°©ìì¼ë¡ë ë³ì를 ì ìí©ëë¤.
let user = 'John',
age = 25,
message = 'Hello';
âì¼íê° ë¨¼ì ì¤ëâ ë°©ìì¼ë¡ ìì±íë ì¬ëë ììµëë¤.
let user = 'John'
, age = 25
, message = 'Hello';
ììì ìê°í ë°©ìë¤ì 기ì ì ì¸ ì°¨ì´ê° ìì§ë ììµëë¤. ê°ì¸ì ì·¨í¥ê³¼ 미ì ê°ê°ì ë°ë¼ ìíë ë°©ìì¼ë¡ ì½ë를 ìì±íì¸ì.
let ëì varë§ë¤ì´ì§ ì§ ì¤ëë ì¤í¬ë¦½í¸ìì let ëì varë¼ë í¤ìë를 ë°ê²¬íë ê²½ì°ê° ììµëë¤.
var message = 'Hello';
varë letê³¼ ê±°ì ëì¼íê² ëìí©ëë¤. varë letì²ë¼ ë³ì를 ì ì¸íë ë° ì°ì´ì£ . ë¤ë§ varë âì¤ëëâ ë°©ìì
ëë¤.
letê³¼ varì 미ë¬í ì°¨ì´ì ì ëí´ì ì¶í ì¤ëë var ìì ìì¸í ë¤ë£¨ëë¡ íê² ìµëë¤. ì§ê¸ ìì ìì ì´ ì°¨ì´ì ì´ ì¤ìíì§ ì기 ë문ì ëì´ê°ëë¡ í©ìë¤.
íì¤ ìì ë¹ì
âììâ ìì ë°ì´í°ë¥¼ ì ì¥íëë°, ì´ ìììë í¹ë³í ì´ë¦íê° ë¶ì´ ìë¤ê³ ììí´ ë´ ìë¤. ì´ë ê² íë©´ 'ë³ìâ를 ì¢ ë ì½ê² ì´í´í ì ììµëë¤.
ì를 ë¤ì´, ë³ì messageë messageë¼ë ì´ë¦íê° ë¶ì´ìë ììì "Hello!"ë¼ë ê°ì ì ì¥í ê²ì´ë¼ê³ ìê°í ì ììµëë¤.
ìì ìì ì´ë¤ ê°ì´ë ì§ ë£ì ì ììµëë¤.
ìíë ë§í¼ ê°ì ë³ê²½í ìë ììµëë¤.
let message;
message = 'Hello!';
message = 'World!'; // ê°ì´ ë³ê²½ëììµëë¤.
alert(message);
ê°ì´ ë³ê²½ëë©´, ì´ì ë°ì´í°ë ë³ììì ì ê±°ë©ëë¤.
ë³ì ë ê°ë¥¼ ì ì¸íê³ , í ë³ìì ë°ì´í°ë¥¼ ë¤ë¥¸ ë³ìì ë³µì¬í ìë ììµëë¤.
let Hello = 'Hello world!';
let message;
// Helloì 'Hello world' ê°ì messageì ë³µì¬í©ëë¤.
message = Hello;
// ì´ì ë ë³ìë ê°ì ë°ì´í°ë¥¼ ê°ì§ëë¤.
alert(Hello); // Hello world!
alert(message); // Hello world!
ë³ìë í ë²ë§ ì ì¸í´ì¼ í©ëë¤.
ê°ì ë³ì를 ì¬ë¬ ë² ì ì¸íë©´ ìë¬ê° ë°ìí©ëë¤.
let message = "This";
// 'let'ì ë°ë³µíë©´ ìë¬ê° ë°ìí©ëë¤.
let message = "That"; // SyntaxError: 'message' has already been declared
ë°ë¼ì ë³ìë ë± í ë²ë§ ì ì¸íê³ , ì ì¸í ë³ì를 참조í ëë let ìì´ ë³ìëª
ë§ ì¬ì©í´ 참조í´ì¼ í©ëë¤.
í¨ìí(functional) íë¡ê·¸ëë° ì¸ì´ë ë³ì«ê° ë³ê²½ì ê¸ì§í©ëë¤. ì¤ì¹¼ë¼(Scala)ì ì¼ë(Erlang)ì ëíì ì¸ í¨ìí ì¸ì´ì ëë¤.
ì´ë¤ ì¸ì´ììë âìì ììâ ê°ì´ ì¼ë¨ ì ì¥ëë©´, ê·¸ ê°ì ììí ì ì§í©ëë¤. ë¤ë¥¸ ê°ì ì ì¥íê³ ì¶ë¤ë©´ ìë¡ì´ ìì를 ë§ë¤ì´ì¼(ì ë³ì를 ì ì¸í´ì¼)ë§ í©ëë¤. ì´ì ë³ì를 ì¬ì¬ì©í ì ììµëë¤.
ì²ì ë´¤ì ë ì¢ ì´ìí´ ë³´ì¼ ì ìì§ë§, í¨ìí ì¸ì´ë ì¤ëí ê°ë°ì ìë¹í ì í©í ì¸ì´ì ëë¤. ì´ë° ì ì½ì´ ì¥ì ì¼ë¡ ìì©íë ë³ë ¬ ê³ì°(parallel computation)ê³¼ ê°ì ììë ìì£ . ë¹ì¥ì ì¬ì©í ê³íì´ ìëë¼ë ì´ë° ì¸ì´ë¥¼ ê³µë¶íë ê²ì ìì¼ë¥¼ ëíë ë° ëìì´ ëë¯ë¡, íìµì ê¶ì ë립ëë¤.
ë³ì ëª ëª ê·ì¹
ìë°ì¤í¬ë¦½í¸ìì ë³ì ëª ëª ì ë ê°ì§ ì ì½ ì¬íì´ ììµëë¤.
- ë³ìëª
ìë ì¤ì§ 문ìì ì«ì, ê·¸ë¦¬ê³ ê¸°í¸
$ì_ë§ ë¤ì´ê° ì ììµëë¤. - 첫 ê¸ìë ì«ìê° ë ì ììµëë¤.
ë¤ìì ì í¨í ë³ìëª ì ììì ëë¤.
let userName;
let test123;
ì¬ë¬ ë¨ì´ë¥¼ ì¡°í©íì¬ ë³ìëª
ì ë§ë¤ ë ì¹´ë© í기ë²(camelCase)ì´ íí ì¬ì©ë©ëë¤. ì¹´ë© í기ë²ì ë¨ì´ë¥¼ ì°¨ë¡ëë¡ ëì´íë©´ì 첫 ë¨ì´ë¥¼ ì ì¸í ê° ë¨ì´ì 첫 ê¸ì를 ë문ìë¡ ìì±í©ëë¤. myVeryLongNameê°ì´ ë§ì´ì£ .
ë¬ë¬ ê¸°í¸ '$' ì ë°ì¤ '_' 를 ë³ìëª
ì ì¬ì©í ì ìë¤ë ì ì´ ì¡°ê¸ í¹ì´íë¤ì. ì´ í¹ì 기í¸ë ì¼ë° ê¸ìì²ë¼ í¹ë³í ì미를 ì§ëì§ ììµëë¤.
ìëë ì í¨í ë³ìëª ì ê´í ììì ëë¤.
let $ = 1; // '$'ë¼ë ì´ë¦ì ë³ì를 ì ì¸í©ëë¤.
let _ = 2; // '_'ë¼ë ì´ë¦ì ë³ì를 ì ì¸í©ëë¤.
alert($ + _); // 3
ìëë ì못ë ë³ìëª ì ììì ëë¤.
let 1a; // ë³ìëª
ì ì«ìë¡ ììí´ì ì ë©ëë¤.
let my-name; // íì´í '-'ì ë³ìëª
ì ì¬ ì ììµëë¤.
appleì AppLEì ìë¡ ë¤ë¥¸ ë³ìì
ëë¤.
í¤ë¦´ 문ì, ì¬ì§ì´ ìí문ìë ë³ìëª ì ì¬ì©í ì ììµëë¤. 모ë ì¸ì´ë¥¼ ë³ìëª ì ì¬ì©í ì ìì£ .
let Ð¸Ð¼Ñ = '...';
let æ = '...';
ì ì½ëìë 기ì ì ì¸ ìë¬ê° ììµëë¤. ë³ìëª ë ì í¨í©ëë¤. íì§ë§ ìì´ë¥¼ ë³ìëª ì ì¬ì©íë ê²ì´ êµì ì ì¸ ê´ìµì´ë¯ë¡, ë³ìëª ì ìì´ë¥¼ ì¬ì©í´ì ë§ë¤ê¸¸ ê¶ì ë립ëë¤. ë¤ë¥¸ ëë¼ ì¬ëì´ ì¤í¬ë¦½í¸ë¥¼ ë³¼ ê²½ì° ë±ì ëë¹í´ ì¥ê¸°ì ì¸ ì목ì ê°ì§ê³ ì½ë를 ìì±í©ìë¤.
ìì½ì´(reserved name) 목ë¡ì ìë ë¨ì´ë ë³ìëª ì¼ë¡ ì¬ì©í ì ììµëë¤. ì´ ë¨ì´ë¤ì ìë°ì¤í¬ë¦½í¸ ë´ë¶ìì ì´ë¯¸ ì¬ì© ì¤ì´ê¸° ë문ì ëë¤.
ìì½ì´ ìì: let, class, return, function
ìë ì½ëë ë¬¸ë² ìë¬ë¥¼ ë°ììíµëë¤.
let let = 5; // 'let'ì ë³ìëª
ì¼ë¡ ì¬ì©í ì ìì¼ë¯ë¡ ìë¬!
let return = 5; // 'return'ì ë³ìëª
ì¼ë¡ ì¬ì©í ì ìì¼ë¯ë¡ ìë¬!
use strict ìì´ í ë¹í기ë³ìë ëê° ì ìëì´ ìì´ì¼ ì¬ì©í ì ììµëë¤. ê·¸ë¬ë ìì ìë let ìì´ë ë¨ìíê² ê°ì í ë¹í´ ë³ì를 ìì±íë ê²ì´ ê°ë¥íìµëë¤. use strict를 ì°ì§ ìì¼ë©´ 과거 ì¤í¬ë¦½í¸ìì í¸íì±ì ì ì§í ì ì기 ë문ì ì¬ì í ì´ ë°©ìì ì¬ì©í ì ììµëë¤.
// ì°¸ê³ : ì´ ìì ìë "use strict"ê° ììµëë¤.
num = 5; // ë³ì 'num'ì´ ì ìëì´ìì§ ìëë¼ë, ë¨ì í ë¹ë§ì¼ë¡ ë³ìê° ìì±ë©ëë¤.
alert(num); // 5
ì´ë ê² ë³ì를 ìì±íë ê²ì ëì ê´ìµì ëë¤. ì격 모ëìì ìë¬ë¥¼ ë°ììí¤ê¸° ë문ì´ì£ .
"use strict";
num = 5; // error: num is not defined
ìì
ë³ííì§ ìë ë³ì를 ì ì¸í ë, let ëì const를 ì¬ì©í©ëë¤.
const myBirthday = '18.04.1982';
ì´ë ê² constë¡ ì ì¸í ë³ì를 'ìì(constant)'ë¼ê³ ë¶ë¦
ëë¤. ììë ì¬í ë¹í ì ìì¼ë¯ë¡ ìì를 ë³ê²½íë ¤ê³ íë©´ ìë¬ê° ë°ìí©ëë¤.
const myBirthday = '18.04.1982';
myBirthday = '01.01.2001'; // error, can't reassign the constant!
ë³ì«ê°ì´ ì ë ë³ê²½ëì§ ìì ê²ì´ë¼ íì íë©´, ê°ì´ ë³ê²½ëë ê²ì ë°©ì§íë©´ì ë¤ë¥¸ ê°ë°ìë¤ìê² ì´ ë³ìë ììë¼ë ê²ì ì리기 ìí´ const를 ì¬ì©í´ ë³ì를 ì ì¸íëë¡ í©ìë¤.
ë문ì ìì
기ìµí기 íë ê°ì ë³ìì í ë¹í´ ë³ì¹ì¼ë¡ ì¬ì©íë ê²ì ë리 ì¬ì©ëë ê´ìµì ëë¤.
ì´ë° ììë ë문ìì ë°ì¤ë¡ 구ì±ë ì´ë¦ì¼ë¡ ëª ëª í©ëë¤.
ììë¡ ì¹ìì ì¬ì©íë ìì í기ë²ì¸ 16ì§ì ì»¬ë¬ ì½ëì ëí ìì를 íë² ë§ë¤ì´ë³´ê² ìµëë¤.
const COLOR_RED = "#F00";
const COLOR_GREEN = "#0F0";
const COLOR_BLUE = "#00F";
const COLOR_ORANGE = "#FF7F00";
// ììì ê³ ë¥´ê³ ì¶ì ë ë³ì¹ì ì¬ì©í ì ìê² ëììµëë¤.
let color = COLOR_ORANGE;
alert(color); // #FF7F00
ë문ìë¡ ìì를 ë§ë¤ì´ ì¬ì©íë©´ ë¤ìê³¼ ê°ì ì¥ì ì´ ììµëë¤.
COLOR_ORANGEë"#FF7F00"ë³´ë¤ ê¸°ìµíê¸°ê° í¨ì¬ ì½ìµëë¤.COLOR_ORANGE를 ì¬ì©íë©´"#FF7F00"를 ì¬ì©íë ê²ë³´ë¤ ì¤í를 ë¼ íë¥ ì´ ë®ìµëë¤.COLOR_ORANGEê°#FF7F00ë³´ë¤ í¨ì¬ ì ì미íë¯ë¡, ì½ë ê°ë ì±ì´ ì¦ê°í©ëë¤.
ê·¸ë ë¤ë©´ ì¸ì ì¼ë°ì ì¸ ë°©ìì¼ë¡ ìì를 ëª ëª íê³ , ì¸ì ë문ì를 ì¬ì©í´ì ëª ëª í´ì¼ íë 걸ê¹ì? ëª íí ì§ê³ ëì´ê°ìë¤.
'ììâë ë³ìì ê°ì´ ì ë ë³íì§ ììì ì미í©ëë¤. ê·¸ì¤ìë (빨ê°ìì ëíë´ë 16ì§ì ê°ì²ë¼) ì½ëê° ì¤íë기 ì ì ì´ë¯¸ ê·¸ ê°ì ìê³ ìë ììë ìê³ , ë°íì ê³¼ì ìì ê³ì°ëì§ë§ ìµì´ í ë¹ ì´í ê°ì´ ë³íì§ ìë ììë ììµëë¤.
ìì:
const pageLoadTime = /* ì¹íì´ì§ë¥¼ ë¡ëíëë° ê±¸ë¦° ìê° */;
pageLoadTimeì ê°ì íì´ì§ê° ë¡ëë기 ì ìë ì í´ì§ì§ ì기 ë문ì ì¼ë°ì ì¸ ë°©ìì¼ë¡ ë³ìëª
ì ì§ììµëë¤. íì§ë§ ì´ ê°ì ìµì´ í ë¹ ì´íì ë³ê²½ëì§ ìì¼ë¯ë¡ ì¬ì í ììì
ëë¤.
ì 리íìë©´, ë문ì ììë âíë ì½ë©íâ ê°ì ë³ì¹ì ë§ë¤ ë ì¬ì©íë©´ ë©ëë¤.
ë°ëì§í ë³ìëª
ë³ìì ê´í ë§¤ì° ì¤ìí ì¬ì¤ì´ í ê°ì§ ë ììµëë¤.
ë³ìëª ì ê°ê²°íê³ , ëª íí´ì¼ í©ëë¤. ë³ìê° ë´ê³ ìë ê²ì´ 무ìì¸ì§ ì ì¤ëª í ì ìì´ì¼ íì£ .
ë³ìì ì´ë¦ì ì§ë ê²ì íë¡ê·¸ëë°ìì ê°ì¥ ì¤ìíê³ ë³µì¡í 기ì ì¤ íëì ëë¤. ë³ìëª ë§ ì¬ì© ë´ë ì´ë³´ìê° ì½ë를 ìì±íëì§, ë ¸ë ¨í ê°ë°ìê° ìì±íëì§ ì ì ììµëë¤.
ì¤ì íë¡ì í¸ìì 맨 ì²ìë¶í° ìì í ë 립ì ì¸ ì½ë를 ìì±íê¸°ë³´ë¤ ê¸°ì¡´ ì½ëì íì ë³ê²½íê³ íì¥íëë° ëë¶ë¶ì ìê°ì ë³´ë ëë¤. ìì±íë ì½ë를 ì¼ë§ íì ë¤ì ë´¤ì ë, ì ë³´ì ìë§ì ì´ë¦ì´ ì íìì¼ë©´ ì 보를 ë ì½ê² ì°¾ì ì ììµëë¤. ë¤ì ë§í´, ë³ìê° ì¬ë°ë¥¸ ì´ë¦ì ê°ì¡ì ë ë§ì´ì£ .
ê·¸ë¬ë¯ë¡ ë³ì를 ì ì¸í기 ì ì ë´ê° ì§ì ë³ìì ì´ë¦ì´ ê´ì°®ìì§ ìê³ í´ ì£¼ì기 ë°ëëë¤.
ìëë ë³ì ëª ëª ì ì°¸ê³ í기 ì¢ì ê·ì¹ì ëë¤.
userNameì´ëshoppingCartì²ë¼ ì¬ëì´ ì½ì ì ìë ì´ë¦ì ì¬ì©íì¸ì.- 무ìì íê³ ìëì§ ëª
íí ìê³ ìì§ ìì ê²½ì° ì¸ìë ì¤ìë§ì´ë
a,b,cì ê°ì ì§§ì ì´ë¦ì í¼íì¸ì. - ìµëí ìì ì ì´ê³ ê°ê²°íê² ëª
ëª
í´ ì£¼ì¸ì.
dataìvalueë ëì ì´ë¦ì ììì ëë¤. ì´ë° ì´ë¦ì ì무ê²ë ì¤ëª í´ì£¼ì§ ììµëë¤. ì½ë 문맥ì ë³ìê° ê°ë¦¬í¤ë ë°ì´í°ë ê°ì´ ì주 ëª íí ëìë§ ì´ë° ì´ë¦ì ì¬ì©í©ìë¤. - ìì ë§ì ê·ì¹ì´ë ììë íì ê·ì¹ì ë°ë¥´ì¸ì. ë§ì½ ì¬ì´í¸ 방문ê°ì 'userâë¼ê³ ë¶ë¥´ê¸°ë¡ íë¤ë©´, ì´ì ê´ë ¨ë ë³ì를
currentVisitorënewManInTownì´ ìëcurrentUserënewUserë¼ë ì´ë¦ì¼ë¡ ì§ì´ì¼ í©ëë¤.
ê°ë¨í´ ë³´ì´ëì? ê·¸ë ê² ë³´ì´ê¸´ í©ëë¤. ê·¸ë¬ë ì¤ì ìì ìì ì ì´ê³ ê°ê²°í ë³ìëª ì ì§ë ê²ì ê°ë¨íì§ ììµëë¤. ê·¸ë¼, íì´í !
ê°ë°ì ì¤ìë ìë¡ì´ ë³ì를 ì ì¸íê¸°ë³´ë¤ ê¸°ì¡´ ë³ì를 ì¬ì¬ì© íë 걸 ì í¸íë ê²ì¼ë¥¸ ë¶ë¤ì´ ììµëë¤.
ì¬ì¬ì©ë ë³ìë 과거ì ë¶ì¬ì§ ì¤í°ì»¤ë¥¼ ë¼ì§ ìì ì± ë¬¼ê±´ë§ ë°ë ììì ê°ìµëë¤. ìì ììë 무ìì´ ë¤ì´ ììê¹ì? ë´ì©ë¬¼ì ëí ì 보를 ìê³ ìë ì¬ëì ë구ì¸ê°ì? ì´ë¥¼ ì기 ìí´ì ììì ê°ê¹ì´ ë¤ê°ê° íì¸í´ì¼ë§ í©ëë¤.
ë³ì를 ì¬ì¬ì©íë©´ ë³ì ì ì¸ì ìë ë ¸ë ¥ì ì¢ ë ì ìê² ì§ë§, ëë²ê¹ ì ì´ ë°° ë ë§ì ìê°ì ììì¼ í©ëë¤.
ë³ì를 ì¶ê°íë ê²ì ì ìµì´ ìëëë¤. ì¢ì ìµê´ì ëë¤.
모ë ìë°ì¤í¬ë¦½í¸ ìì¶ê¸°(minifier)ì ë¸ë¼ì°ì ë ì½ë ìµì í를 ìí´ì¤ëë¤. ë³ì를 ì¶ê°íë¤ê³ í´ì ì±ë¥ ì´ìê° ìê¸°ì§ ìì£ . ê°ì´ ë¤ë¥¸ ê²½ì°, ë³ì를 ë¤ë¥´ê² ì ì¸í´ 주면 ì½ë ìµì íì ëìì´ ë ìë ììµëë¤.
ìì½
var, let, const를 ì¬ì©í´ ë³ì를 ì ì¸í ì ììµëë¤. ì ì¸ë ë³ìì ë°ì´í°ë¥¼ ì ì¥í ì ìì£ .
letâ 모ëí ë³ì ì ì¸ í¤ìëì ëë¤.varâ ì¤ëë ë³ì ì ì¸ í¤ìëì ëë¤. ì ì¬ì©íì§ ììµëë¤.letê³¼ì 미ë¬í ì°¨ì´ì ì ì¤ëë var ì±í°ìì ë¤ë£¨ëë¡ íê² ìµëë¤.constâletê³¼ ë¹ì·íì§ë§, ë³ìì ê°ì ë³ê²½í ì ììµëë¤.
ë³ìëª ì ë³ìê° ë´ê³ ìë ê²ì´ 무ìì¸ì§ ì½ê² ì ì ìëë¡ ì§ì´ì ¸ì¼ í©ëë¤.
ëê¸
<code>í그를, ì¬ë¬ ì¤ë¡ 구ì±ë ì½ë를 ì½ì íê³ ì¶ë¤ë©´<pre>í그를 ì´ì©íì¸ì. 10ì¤ ì´ìì ì½ëë plnkr, JSBin, codepen ë±ì ìëë°ì¤ë¥¼ ì¬ì©íì¸ì.