ì¡°ê±´ì ë°ë¼ ë¤ë¥¸ íëì ì·¨í´ì¼ í ëê° ììµëë¤.
ì´ë´ ë, if문과 â물ìíâ ì°ì°ìë¼ê³ ë ë¶ë¦¬ë ì¡°ê±´ë¶ ì°ì°ì ?를 ì¬ì©íë©´ ë©ëë¤.
'ifâ문
if(...)문ì ê´í¸ ìì ë¤ì´ê°ë ì¡°ê±´ì íê°íëë°, ê·¸ ê²°ê³¼ê° trueì´ë©´ ì½ë ë¸ë¡ì´ ì¤íë©ëë¤.
ìì:
let year = prompt('ECMAScript-2015 ëª
ì¸ë ëª ë
ëì ì¶íëììê¹ì?', '');
if (year == 2015) alert( 'ì ëµì
ëë¤!' );
ì ìììì ì¡°ê±´(year == 2015)ì´ ê°ë¨í ê²½ì°ë§ ë¤ë¤ëë°, 조건문ì ë ë³µì¡í ìë ììµëë¤.
ì¡°ê±´ì´ trueì¼ ë ë³µìì 문ì ì¤ííê³ ì¶ë¤ë©´ ì¤ê´í¸ë¡ ì½ë ë¸ë¡ì ê°ì¸ì¼ í©ëë¤.
if (year == 2015) {
alert( "ì ëµì
ëë¤!" );
alert( "ì주 ëëíìë¤ì!" );
}
if문ì ì¸ ëë ì¡°ê±´ì´ ì°¸ì¼ ê²½ì° ì¤íëë êµ¬ë¬¸ì´ ë¨ í ì¤ì´ëë¼ë ì¤ê´í¸ {}를 ì¬ì©í´ ì½ë를 ë¸ë¡ì¼ë¡ ê°ì¸ë ê²ì ì¶ì²í´ ë립ëë¤. ì´ë ê² íë©´ ì½ë ê°ë
ì±ì´ ì¦ê°í©ëë¤.
ë¶ë¦°íì¼ë¡ì ë³í
if (â¦) 문ì ê´í¸ ìì ííìì íê°íê³ ê·¸ 결과를 ë¶ë¦°ê°ì¼ë¡ ë³íí©ëë¤.
í ë³í ì±í°ìì ë°°ì´ í ë³í ê·ì¹ì ì ì ìê¸°í´ ë´ ìë¤.
- ì«ì
0, ë¹ ë¬¸ìì´"",null,undefined,NaNì ë¶ë¦°íì¼ë¡ ë³í ì 모ëfalseê° ë©ëë¤. ì´ë° ê°ë¤ì âfalsy(ê±°ì§ ê°ì)â ê°ì´ë¼ê³ ë¶ë¦ ëë¤. - ì´ ì¸ì ê°ì ë¶ë¦°íì¼ë¡ ë³íì
trueê° ëë¯ë¡ âtruthy(ì°¸ ê°ì)â ê°ì´ë¼ê³ ë¶ë¦ ëë¤.
ì´ ê·ì¹ì ë°ë¥´ë©´ ìë ììì ì½ë ë¸ë¡ì ì ë ì¤íëì§ ììµëë¤.
if (0) { // 0ì falsyì
ëë¤.
...
}
ìë ììì ì½ë ë¸ë¡ì íì ì¤íë©ëë¤.
if (1) { // 1ì truthyì
ëë¤.
...
}
ìëì ê°ì´ íê°ë¥¼ íµí´ íì ë ë¶ë¦°ê°ì if문ì ì ë¬í ìë ììµëë¤.
let cond = (year == 2015); // ëë± ë¹êµë¥¼ íµí´ true/false ì¬ë¶ë¥¼ ê²°ì í©ëë¤.
if (cond) {
...
}
'elseâì
if문ì else ì ì ë¶ì¼ ì ììµëë¤. else ë¤ì ì´ì´ì§ë ì½ë ë¸ë¡ì ì¡°ê±´ì´ ê±°ì§ì¼ ë ì¤íë©ëë¤.
ìì:
let year = prompt('ECMAScript-2015 ëª
ì¸ë ëª ë
ëì ì¶íëììê¹ì?', '');
if (year == 2015) {
alert( 'ì ëµì
ëë¤!' );
} else {
alert( 'ì¤ëµì
ëë¤!' ); // 2015 ì´ì¸ì ê°ì ì
ë ¥í ê²½ì°
}
'else ifâë¡ ë³µì ì¡°ê±´ ì²ë¦¬í기
ì ì¬íì§ë§ ì½ê°ì© ì°¨ì´ê° ìë ì¡°ê±´ ì¬ë¬ ê°ë¥¼ ì²ë¦¬í´ì¼ í ëê° ììµëë¤. ì´ë else if를 ì¬ì©í ì ììµëë¤.
ìì:
let year = prompt('ECMAScript-2015 ëª
ì¸ë ëª ë
ëì ì¶íëììê¹ì?', '');
if (year < 2015) {
alert( 'ì«ì를 ì¢ ë ì¬ë ¤ë³´ì¸ì.' );
} else if (year > 2015) {
alert( 'ì«ì를 ì¢ ë ë´ë ¤ë³´ì¸ì.' );
} else {
alert( 'ì ëµì
ëë¤!' );
}
ì ìììì, ìë°ì¤í¬ë¦½í¸ë ì¡°ê±´ year < 2015를 먼ì íì¸í©ëë¤. ì´ ì¡°ê±´ì´ ê±°ì§ì´ë¼ë©´ ë¤ì ì¡°ê±´ year > 2015를 íì¸í©ëë¤. ì´ ì¡°ê±´ ëí ê±°ì§ì´ë¼ë©´ else ì ë´ì alert를 ì¤íí©ëë¤.
else if ë¸ë¡ì ë ë§ì´ ë¶ì´ë ê²ë ê°ë¥í©ëë¤. ë§ì§ë§ì ë¶ë elseë íìê° ìë ì í ì¬íì
ëë¤.
ì¡°ê±´ë¶ ì°ì°ì â?â
ì¡°ê±´ì ë°ë¼ ë¤ë¥¸ ê°ì ë³ìì í ë¹í´ì¤ì¼ í ëê° ììµëë¤.
ìì:
let accessAllowed;
let age = prompt('ëì´ë¥¼ ì
ë ¥í´ ì£¼ì¸ì.', '');
if (age > 18) {
accessAllowed = true;
} else {
accessAllowed = false;
}
alert(accessAllowed);
'물ìí(question mark) ì°ì°ìâë¼ê³ ë ë¶ë¦¬ë 'ì¡°ê±´ë¶(conditional) ì°ì°ìâ를 ì¬ì©íë©´ ì ìì를 ë ì§§ê³ ê°ê²°íê² ë³íí ì ììµëë¤.
ì¡°ê±´ë¶ ì°ì°ìë 물ìí?ë¡ íìí©ëë¤. í¼ì°ì°ìê° ì¸ ê°ì´ê¸° ë문ì ì¡°ê±´ë¶ ì°ì°ì를 'ì¼í(ternary) ì°ì°ìâë¼ê³ ë¶ë¥´ë ì¬ëë ììµëë¤. ì°¸ê³ ë¡, ìë°ì¤í¬ë¦½í¸ìì í¼ì°ì°ì를 3ê°ë ë°ë ì°ì°ìë ì¡°ê±´ë¶ ì°ì°ìê° ì ì¼í©ëë¤.
문ë²:
let result = condition ? value1 : value2;
íê° ëìì¸ conditionì´ truthyë¼ë©´ value1ì´, ê·¸ë ì§ ìì¼ë©´ value2ê° ë°íë©ëë¤.
ìì:
let accessAllowed = (age > 18) ? true : false;
age > 18 주ìì ê´í¸ë ìëµ ê°ë¥í©ëë¤. 물ìí ì°ì°ìë ì°ì ììê° ë®ì¼ë¯ë¡ ë¹êµ ì°ì°ì >ê° ì¤íëê³ ë ë¤ì ì¤íë©ëë¤.
ìë ììë ì ììì ëì¼íê² ëìí©ëë¤.
// ì°ì°ì ì°ì ìì ê·ì¹ì ë°ë¼, ë¹êµ ì°ì° 'age > 18'ì´ ë¨¼ì ì¤íë©ëë¤.
// (조건문ì ê´í¸ë¡ ê°ì íìê° ììµëë¤.)
let accessAllowed = age > 18 ? true : false;
ê´í¸ê° ìì¼ë ìì¼ë ì°¨ì´ë ìì§ë§, ì½ëì ê°ë ì± í¥ìì ìí´ ê´í¸ë¥¼ ì¬ì©í ê²ì ê¶ì í©ëë¤.
ë¹êµ ì°ì°ì ìì²´ê° trueë false를 ë°íí기 ë문ì ì ìììì 물ìí ì°ì°ì를 ì¬ì©íì§ ììë ë©ëë¤.
// ëì¼íê² ëìí¨
let accessAllowed = age > 18;
ë¤ì¤ â?â
물ìí ì°ì°ì?를 ì¬ë¬ ê° ì°ê²°íë©´ ë³µìì ì¡°ê±´ì ì²ë¦¬í ì ììµëë¤.
ìì:
let age = prompt('ëì´ë¥¼ ì
ë ¥í´ì£¼ì¸ì.', 18);
let message = (age < 3) ? 'ìê¸°ì¼ ìë
?' :
(age < 18) ? 'ìë
!' :
(age < 100) ? 'íìí©ëë¤!' :
'ëì´ê° ì주 ë§ì¼ìê±°ë, ëì´ê° ìë ê°ì ì
ë ¥ íì
¨êµ°ì!';
alert( message );
물ìí ì°ì°ì를 ì´ë° ë°©ìì¼ë¡ ì°ë 걸 ì²ì 본 ë¶ì´ë¼ë©´ ì´ ì½ëê° ì´ë»ê² ëìíëì§ íì í기 íë¤ ì ììµëë¤. ê·¸ë¬ë 주ì를 ì§ì¤íê³ ë³´ë©´, ë¨ìí ì¬ë¬ ì¡°ê±´ì ëì´í ì½ëìì ë¶ê³¼íë¤ë ê²ì ì ì ììµëë¤.
- 첫 ë²ì§¸ 물ìíìì 조건문
age < 3ì ê²ì¬í©ëë¤. - ê·¸ ê²°ê³¼ê° ì°¸ì´ë©´
'ìê¸°ì¼ ìë ?'를 ë°íí©ëë¤. ê·¸ë ì§ ìë¤ë©´ 첫 ë²ì§¸ ì½ë¡":"ì ì´ì´ì§ë 조건문age < 18ì ê²ì¬í©ëë¤. - ê·¸ ê²°ê³¼ê° ì°¸ì´ë©´
'ìë !'를 ë°íí©ëë¤. ê·¸ë ì§ ìë¤ë©´ ë¤ì ì½ë¡":"ì ì´ì´ì§ë 조건문age < 100ì ê²ì¬í©ëë¤. - ê·¸ ê²°ê³¼ê° ì°¸ì´ë©´
'íìí©ëë¤!'를 ë°íí©ëë¤. ê·¸ë ì§ ìë¤ë©´ ë§ì§ë§ ì½ë¡":"ì´íì ííìì¸'ëì´ê° ì주 ë§ì¼ìê±°ë, ëì´ê° ìë ê°ì ì ë ¥ íì ¨êµ°ì!'를 ë°íí©ëë¤.
if..else를 ì¬ì©íë©´ ì ìì를 ìëì ê°ì´ ë³íí ì ììµëë¤.
if (age < 3) {
message = 'ìê¸°ì¼ ìë
?';
} else if (age < 18) {
message = 'ìë
!';
} else if (age < 100) {
message = 'íìí©ëë¤!';
} else {
message = 'ëì´ê° ì주 ë§ì¼ìê±°ë, ëì´ê° ìë ê°ì ì
ë ¥ íì
¨êµ°ì!';
}
ë¶ì ì í â?â
물ìí?를 if ëì©ì¼ë¡ ì°ë ê²½ì°ê° ì¢
ì¢
ììµëë¤.
let company = prompt('ìë°ì¤í¬ë¦½í¸ë ì´ë¤ íì¬ê° ë§ë¤ììê¹ì?', '');
(company == 'Netscape') ?
alert('ì ëµì
ëë¤!') : alert('ì¤ëµì
ëë¤!');
ì¡°ê±´ company == 'Netscape'ì ê²ì¬ ê²°ê³¼ì ë°ë¼ ? ë¤ì ì´ì´ì§ë 첫 ë²ì§¸ í¹ì ë ë²ì§¸ ííìì´ ì¤íëì´ ì¼ë¿ ì°½ì´ ë¹ëë¤.
ì ìììì íê° ê²°ê³¼ë¥¼ ë³ìì í ë¹íì§ ìê³ , ê²°ê³¼ì ë°ë¼ ì¤íëë ííìì´ ë¬ë¼ì§ëë¡ íììµëë¤.
ê·¸ë°ë° ì´ë° ìì¼ë¡ 물ìí ì°ì°ì를 ì¬ì©íë ê²ì ì¢ì§ ììµëë¤.
ê°ë°ì ì
ì¥ìì if문ì ì¬ì©í ë ë³´ë¤ ì½ë 길ì´ê° ì§§ìì§ë¤ë ì ë문ì 물ìí?를 if ëì©ì¼ë¡ ì°ë ê² ë§¤ë ¥ì ì¼ ì ììµëë¤. íì§ë§ ì´ë ê² ì½ë를 ìì±íë©´ ê°ë
ì±ì´ ë¨ì´ì§ëë¤.
ìëë if를 ì¬ì©í´ ë³íí ì½ëì
ëë¤. ì´ë ì½ëê° ë ì½ê¸° ì¬ì´ì§ ì§ì ë¹êµí´ ë³´ì기 ë°ëëë¤.
let company = prompt('ìë°ì¤í¬ë¦½í¸ë ì´ë¤ íì¬ê° ë§ë¤ììê¹ì?', '');
if (company == 'Netscape') {
alert('ì ëµì
ëë¤!');
} else {
alert('ì¤ëµì
ëë¤!');
}
ì½ë를 ì½ì ë ì°ë¦¬ì ëì ìì§ì¼ë¡ ìì§ì ëë¤. ìíì¼ë¡ ê¸¸ê² ëì´ì§ ì½ëë³´ë¨ ì¬ë¬ ì¤ë¡ ëëì´ ìì±ë ì½ë ë¸ë¡ì´ ë ì½ê¸° ì½ì£ .
물ìí ì°ì°ì?ë ì¡°ê±´ì ë°ë¼ ë°í ê°ì ë¬ë¦¬íë ¤ë 목ì ì¼ë¡ ë§ë¤ì´ì¡ìµëë¤. ì´ë° 목ì ì ë¶í©íë ê³³ì 물ìí를 ì¬ì©íì길 ë°ëëë¤. ì¬ë¬ ë¶ê¸°ë¥¼ ë§ë¤ì´ ì²ë¦¬í ëë if를 ì¬ì©íì¸ì.
ëê¸
<code>í그를, ì¬ë¬ ì¤ë¡ 구ì±ë ì½ë를 ì½ì íê³ ì¶ë¤ë©´<pre>í그를 ì´ì©íì¸ì. 10ì¤ ì´ìì ì½ëë plnkr, JSBin, codepen ë±ì ìëë°ì¤ë¥¼ ì¬ì©íì¸ì.