ë§ì
+, ê³±ì
*, ëºì
-ê³¼ ê°ì ì°ì°ì íêµìì ë°°ìì ì´ë¯¸ ìê³ ê³ì¤ ê²ëë¤.
ì´ë² ì±í°ììë ì´ë° 기본 ì°ì°ì를 ììì¼ë¡ íêµìì ë¤ë£¨ì§ ììë ìë°ì¤í¬ë¦½í¸ììë§ ì ê³µíë ì°ì°ìì ëí´ ë°°ìë³´ê² ìµëë¤.
ì©ì´: âë¨íâ, âì´íâ, âí¼ì°ì°ìâ
ì°ì°ìì ëí´ íìµí기 ì ì, ìì¼ë¡ ì주 ë±ì¥íê² ë ì©ì´ ëª ê°ì§ë¥¼ ì ë¦¬í´ ë³´ê² ìµëë¤.
-
í¼ì°ì°ì(operand) ë ì°ì°ìê° ì°ì°ì ìííë ëìì ëë¤.
5 * 2ìë ì¼ìª½ í¼ì°ì°ì5ì ì¤ë¥¸ìª½ í¼ì°ì°ì2, ì´ ë ê°ì í¼ì°ì°ìê° ììµëë¤. 'í¼ì°ì°ìâë 'ì¸ì(argument)'ë¼ë ì©ì´ë¡ ë¶ë¦¬ê¸°ë í©ëë¤. -
í¼ì°ì°ì를 íëë§ ë°ë ì°ì°ìë ë¨í(unary) ì°ì°ì ë¼ê³ ë¶ë¦ ëë¤. í¼ì°ì°ìì ë¶í¸ë¥¼ ë¤ì§ë ë¨í ë§ì´ëì¤ ì°ì°ì
-ë ë¨í ì°ì°ìì ëíì ì¸ ìì ëë¤.let x = 1; x = -x; alert( x ); // -1, ë¨í ë§ì´ëì¤ ì°ì°ìë ë¶í¸ë¥¼ ë¤ì§ìµëë¤. -
ë ê°ì í¼ì°ì°ì를 ë°ë ì°ì°ìë ì´í(binary) ì°ì°ì ë¼ê³ ë¶ë¦ ëë¤. ë§ì´ëì¤ ì°ì°ìë ìëì ê°ì´ ì´í ì°ì°ìë¡ ì¸ ìë ììµëë¤.
let x = 1, y = 3; alert( y - x ); // 2, ì´í ë§ì´ëì¤ ì°ì°ìë ëºì ì í´ì¤ëë¤.ìì ê°ì´ ë¶í¸ë¥¼ ë°ì í´ì£¼ë ë¨í ë§ì´ëì¤ ì°ì°ìì ëºì ì ì°ì´ë ì´í ë§ì´ëì¤ ì°ì°ì(ëºì ì°ì°ì)ë 기í¸ë ê°ì§ë§ ìííë ì°ì°ì´ ë¤ë¦ ëë¤. ë ì°ì°ì 구ë¶íë 기ì¤ì í¼ì°ì°ìì ê°ìì ëë¤.
ìí
ìë°ì¤í¬ë¦½í¸ìì ì§ìíë ìí ì°ì°ìë ë¤ìê³¼ ê°ìµëë¤.
- ë§ì
ì°ì°ì
+, - ëºì
ì°ì°ì
-, - ê³±ì
ì°ì°ì
*, - ëëì
ì°ì°ì
/, - ëë¨¸ì§ ì°ì°ì
%, - ê±°ëì ê³± ì°ì°ì
**
ì쪽 ë¤ ì°ì°ìë ì¤ëª
ì´ íì ìê² ì§ë§, %ì **ë ì½ê°ì ì¤ëª
ì´ íìí ê² ê°ë¤ì.
ëë¨¸ì§ ì°ì°ì %
ëë¨¸ì§ ì°ì°ì(remainder operator)ë % 기í¸ë¡ ëíë´ì§ë§, ë¹ì¨ì ëíë´ë í¼ì¼í¸ì ê´ë ¨ì´ ììµëë¤.
ëë¨¸ì§ ì°ì°ì를 ì¬ì©í ííì a % bë a를 bë¡ ëë í ê·¸ ë머ì§(remainder)를 ì ìë¡ ë°íí´ì¤ëë¤.
ìì:
alert( 5 % 2 ); // 5를 2ë¡ ëë íì ë머ì§ì¸ 1ì ì¶ë ¥
alert( 8 % 3 ); // 8ì 3ì¼ë¡ ëë íì ë머ì§ì¸ 2를 ì¶ë ¥
ê±°ëì ê³± ì°ì°ì **
ê±°ëì ê³± ì°ì°ì(exponentiation operator)를 ì¬ì©í a ** b를 íê°íë©´ a를 bë² ê³±í ê°ì´ ë°íë©ëë¤.
ìì:
alert( 2 ** 2 ); // 4 (2 * 2)
alert( 2 ** 3 ); // 8 (2 * 2 * 2)
alert( 2 ** 4 ); // 16 (2 * 2 * 2 * 2)
ê±°ëì ê³± ì°ì°ìë ì ìê° ìë ì«ìì ëí´ìë ëìí©ëë¤. 1/2ì ì¬ì©íë©´ ì 곱근ì 구í ì ìì£ .
alert( 4 ** (1/2) ); // 2 (1/2 ê±°ëì ê³±ì ì 곱근)
alert( 8 ** (1/3) ); // 2 (1/3 ê±°ëì ê³±ì ì¸ì 곱근)
ì´í ì°ì°ì '+'ì 문ìì´ ì°ê²°
ì´ì íêµìì ë°°ì´ ê¸°ë³¸ ì°ì ì°ì°ì를 ëì´, ìë°ì¤í¬ë¦½í¸ê° ì ê³µíë í¹ë³í ì°ì°ì 기ë¥ì ëí´ ì´í´ë´ ìë¤.
ë§ì
ì°ì°ì +ë ëê° ì«ì를 ëí 결과를 ë°íí©ëë¤.
ê·¸ë°ë° ì´í ì°ì°ì +ì í¼ì°ì°ìë¡ ë¬¸ìì´ì´ ì ë¬ëë©´ ë§ì
ì°ì°ìë ë§ì
ì´ ìë 문ìì´ì ë³í©(ì°ê²°)í©ëë¤.
let s = "my" + "string";
alert(s); // mystring
ë°ë¼ì ì´í ì°ì°ì +를 ì¬ì©í ëë í¼ì°ì°ì ì¤ íëê° ë¬¸ìì´ì´ë©´ ë¤ë¥¸ íëë 문ìì´ë¡ ë³íëë¤ë ì ì 주ìí´ì¼ í©ëë¤.
ìì:
alert( '1' + 2 ); // "12"
alert( 2 + '1' ); // "21"
첫 ë²ì§¸ í¼ì°ì°ìê° ë¬¸ìì´ì¸ì§, ë ë²ì§¸ í¼ì°ì°ìê° ë¬¸ìì´ì¸ì§ë ì¤ìíì§ ììµëë¤. í¼ì°ì°ì ì¤ ì´ë íëê° ë¬¸ìì´ì´ë©´ ë¤ë¥¸ íëë 문ìì´ë¡ ë³íë©ëë¤.
ì¢ ë ë³µì¡í ìì를 ì´í´ë´ ìë¤.
alert(2 + 2 + '1' ); // '221'ì´ ìëë¼ '41'ì´ ì¶ë ¥ë©ëë¤.
ì°ì°ì ì¼ìª½ìì ì¤ë¥¸ìª½ì¼ë¡ ìì°¨ì ì¼ë¡ ì§íë기 ë문ì ì´ë° ê²°ê³¼ê° ëììµëë¤. ë ê°ì ì«ì ë¤ì 문ìì´ì´ ì¤ë ê²½ì°, ì«ìê° ë¨¼ì ëí´ì§ê³ , ê·¸ í ëí´ì§ ì«ìì 문ìì´ê³¼ì ë³í©ì´ ì¼ì´ë©ëë¤.
ì´ì²ë¼ ì´í ë§ì
ì°ì°ì +ë 문ìì´ ì°ê²°ê³¼ ë³íì´ë¼ë í¹ë³í 기ë¥ì ì ê³µí©ëë¤. ë¤ë¥¸ ì°ì ì°ì°ìê° ì¤ì§ ì«ìíì í¼ì°ì°ìë§ ë¤ë£¨ê³ , í¼ì°ì°ìê° ì«ìíì´ ìë ê²½ì°ì ê·¸ íì ì«ìíì¼ë¡ ë°ê¾¸ë ê²ê³¼ë ëì¡°ì ì
ëë¤.
ìëë ëºì
-ê³¼ ëëì
/ ì°ì°ìê° ì´ë»ê² 문ìí í¼ì°ì°ì를 ë¤ë£¨ëì§ë¥¼ ë³´ì¬ì¤ëë¤.
alert( 6 - '2' ); // 4, '2'를 ì«ìë¡ ë°ê¾¼ í ì°ì°ì´ ì§íë©ëë¤.
alert( '6' / '2' ); // 3, ë í¼ì°ì°ìê° ì«ìë¡ ë°ë í ì°ì°ì´ ì§íë©ëë¤.
ë¨í ì°ì°ì +ì ì«ìíì¼ë¡ì ë³í
ë§ì
ì°ì°ì +ë ì´í ì°ì°ìë¿ë§ ìëë¼ ë¨í ì°ì°ìë¡ë ì¬ì©í ì ììµëë¤.
ì«ìì ë¨í ë§ì ì°ì°ì를 ë¶ì´ë©´ ì´ ì°ì°ìë ìë¬´ë° ëìë íì§ ììµëë¤. ê·¸ë¬ë í¼ì°ì°ìê° ì«ìê° ìë ê²½ì°ì ì«ìíì¼ë¡ì ë³íì´ ì¼ì´ë©ëë¤.
ìì:
// ì«ììë ìë¬´ë° ìí¥ì 미ì¹ì§ ììµëë¤.
let x = 1;
alert( +x ); // 1
let y = -2;
alert( +y ); // -2
// ì«ìíì´ ìë í¼ì°ì°ìë ì«ìíì¼ë¡ ë³íí©ëë¤.
alert( +true ); // 1
alert( +"" ); // 0
ë¨í ë§ì
ì°ì°ìë ì§§ì 문ë²ì¼ë¡ë Number(...)ì ëì¼í ì¼ì í ì ìê² í´ì¤ëë¤.
ê°ë°ì íë¤ ë³´ë©´ 문ìì´ì ì«ìë¡ ë³íí´ì¼ íë ê²½ì°ê° ì주 ìê¹ëë¤. HTML í¼(form) íëìì ê°ì ê°ì ¸ìëë° ê·¸ ê°ì´ 문ìíì¼ ë ê°ì´ ë§ì´ì£ . ì¤ì ë¡ í¼ìì ê°ì§ê³ ì¨ ê°ì ëê° ë¬¸ìì´ ííì ëë¤.
ì´í ë§ì ì°ì°ì를 ì¬ì©íë©´ ìëì ê°ì´ ê°ì´ 문ìì´ë¡ ë³í´ì ì°ê²°ë ê²ëë¤.
let apples = "2";
let oranges = "3";
alert( apples + oranges ); // 23, ì´í ë§ì
ì°ì°ìë 문ìì´ì ì°ê²°í©ëë¤.
ìíë ëë¡ ê°ì ëí´ì£¼ë ¤ë©´, ë¨í ë§ì ì°ì°ì를 ì¬ì©í´ í¼ì°ì°ì를 ì«ìíì¼ë¡ ë³íìí¤ë©´ ë©ëë¤.
let apples = "2";
let oranges = "3";
// ì´í ë§ì
ì°ì°ìê° ì ì©ë기 ì ì, ë í¼ì°ì°ìë ì«ìíì¼ë¡ ë³íí©ëë¤.
alert( +apples + +oranges ); // 5
// `Number(...)`를 ì¬ì©í´ì ê°ì ëìì íë ì½ë를 ìì±í ì ìì§ë§, ë 기ë¤ì.
// alert( Number(apples) + Number(oranges) ); // 5
ì ìì ìíìê° ë³¸ë¤ë©´ ë¶íìí ë§ì 기í¸ì ëí´ ì¸ê¸íë©° ìì´ ì´ìíë¤ê³ ì§ì í ê²ëë¤. íë¡ê·¸ë머ë¼ë©´ ìëê² ì§ë§ ë§ì´ì£ . ì ìì ì°ë¦¬ê° ìëí ëë¡ ë¨í ë§ì ì°ì°ìê° ë¨¼ì 문ìì´ì ì«ìë¡ ë³íìí¤ê³ , ì´í ë§ì ì°ì°ìê° ê·¸ ê²°ê³¼ë¤ì ëí´ì£¼ê³ ììµëë¤.
ê·¸ë°ë° ì ì´í ë§ì ì°ì°ìê° ì ì©ë기 ì ì ë¨í ë§ì ì°ì°ìê° ë¨¼ì ì ì©ë ê¹ì? ê·¸ ì´ì ë ì´ì íìµíê² ë ì°ì°ì ì°ì ìì ë문ì ëë¤.
ì°ì°ì ì°ì ìì
íëì ííìì ë ì´ìì ì°ì°ìê° ìë ê²½ì°, ì¤í ììë ì°ì°ìì ì°ì ìì(precedence) ì ìí´ ê²°ì ë©ëë¤.
1 + 2 * 2ë¼ë ìì´ ìì ë ê³±ì
ì´ ë¨¼ì , ê·¸ íì ë§ì
ì´ ì¼ì´ëë¤ë ê²ì ìê³ ê³ì¤ ê²ëë¤. ì´ë° ê°ë
ì´ ì°ì°ì ì°ì ììì
ëë¤. ì¬ê¸°ì ê³±ì
ì ë§ì
ë³´ë¤ ë ëì ì°ì ìì를 ê°ì§ì£ .
ìë°ì¤í¬ë¦½í¸ìì ì ìí ì°ì°ì ì°ì ììê° ë§ìì ë¤ì§ ìëë¤ë©´, ê´í¸ë¥¼ ì¬ì©íë©´ ë©ëë¤. ê´í¸ë 모ë ì°ì°ìë³´ë¤ ì°ì ììê° ë기 ë문ì ìë°ì¤í¬ë¦½í¸ìì ì ìí ì°ì°ì ì°ì ìì를 ë¬´ë ¥íìíµëë¤. ííì (1 + 2) * 2ìì ê´í¸ë¡ ëë¬ì¼ ë§ì
ì°ì°ìê° ë¨¼ì ìíëë ê² ê°ì´ ë§ì´ì£ .
ìë°ì¤í¬ë¦½í¸ë ë¤ìí ì°ì°ì를 ì ê³µíëë°, ì´ ëª¨ë ì°ì°ìì ì°ì ììê° ë§¤ê²¨ì ¸ ììµëë¤. ì°ì ìì ì«ìê° í´ìë¡ ë¨¼ì ì¤íë©ëë¤. ììê° ê°ì¼ë©´ ì¼ìª½ë¶í° ììí´ì ì¤ë¥¸ìª½ì¼ë¡ ì°ì°ì´ ìíë©ëë¤.
ìëë ì°ì ìì í ì´ë¸(precedence table)ì ì¼ë¶ë¥¼ ë°ì·í íì ëë¤. ìì를 기ìµí íìë ìì§ë§, ëì¼í 기í¸ì ë¨í ì°ì°ìë ì´í ì°ì°ìë³´ë¤ ì°ì ììê° ë ëë¤ë ê²ì ì£¼ëª©í´ ì£¼ì기 ë°ëëë¤.
| ìì | ì°ì°ì ì´ë¦ | ê¸°í¸ |
|---|---|---|
| ⦠| ⦠| ⦠|
| 17 | ë¨í ë§ì | + |
| 17 | ë¨í ë¶ì | - |
| 16 | ì§ì | ** |
| 15 | ê³±ì | * |
| 15 | ëëì | / |
| 13 | ë§ì | + |
| 13 | ëºì | - |
| ⦠| ⦠| ⦠|
| 3 | í ë¹ | = |
| ⦠| ⦠| ⦠|
'ë¨í ë§ì
ì°ì°ìâë ì°ì ìì 17ë¡, '(ì´í) ë§ì
ì°ì°ìâì ì°ì ìì 13ë³´ë¤ ëìµëë¤. ííì "+apples + +oranges"ìì ë¨í ë§ì
ì°ì°ìê° ë§ì
ë³´ë¤ ë¨¼ì ìíëë ì´ì ê° ë°ë¡ ì´ ë문ì
ëë¤.
í ë¹ ì°ì°ì
무ì¸ê°ë¥¼ í ë¹í ë ì°ì´ë =ë ì°ì°ìì
ëë¤. ì´ ì°ì°ìë í ë¹(assignment) ì°ì°ìë¼ê³ ë¶ë¦¬ëë°, ì°ì ììë 3ì¼ë¡ ì주 ë®ìµëë¤.
x = 2 * 2 + 1ê³¼ ê°ì ííììì ê³ì°ì´ 먼ì ì´ë¤ì§ê³ , ê·¸ ê²°ê³¼ê° xì í ë¹ëë ì´ì ê° ë°ë¡ ì´ ë문ì
ëë¤.
let x = 2 * 2 + 1;
alert( x ); // 5
ê°ì ë°ííë í ë¹ ì°ì°ì
=ë ì°ì°ìì´ê¸° ë문ì í¥ë¯¸ë¡ì´ í¨ì¶ì±ì ë´í¬íê³ ììµëë¤.
ìë°ì¤í¬ë¦½í¸ìì ëë¶ë¶ì ì°ì°ìë¤ì ê°ì ë°íí©ëë¤. +ì -ë¿ë§ ìëë¼ = ìì ê°ì ë°ííì£ .
x = valueì í¸ì¶íë©´ valueê° xì ì°ì¬ì§ê³ , ì´ì ëíì¬ valueê° ë°íë©ëë¤.
í ë¹ ì°ì°ìì ì´ë° í¹ì§ì ì´ì©í ë³µì¡í ííìì ì´í´ë´ ìë¤.
let a = 1;
let b = 2;
let c = 3 - (a = b + 1);
alert( a ); // 3
alert( c ); // 0
ì ìì ìì ííì (a = b + 1)ì aì ê°ì í ë¹íê³ , ê·¸ ê°ì¸ 3ì ë°íí©ëë¤. ê·¸ë¦¬ê³ ë°í ê°ì ì´ì´ì§ë ííìì ì¬ì©ë©ëë¤.
ê´´ìí ì½ëë¼ê³ ëê»´ì§ê² ì§ë§, ì¬ë¬ ìë°ì¤í¬ë¦½í¸ ë¼ì´ë¸ë¬ë¦¬ìì ì´ë° ìì¼ë¡ í ë¹ ì°ì°ì를 ì¬ì©íê³ ì기 ë문ì ëì ì리를 ì´í´í ì ìì´ì¼ í©ëë¤.
ë¤ë§, ì§ì ì½ë를 ìì±í ë ì´ë° ë°©ìì ì¬ì©íì§ ì기를 ë°ëëë¤. ì´ë° í¸ë¦ì ì¬ì©íë©´ ì½ëê° ëª ííì§ ìì ë¿ë§ ìëë¼ ê°ë ì±ë ë¨ì´ì§ê¸° ë문ì ëë¤.
í ë¹ ì°ì°ì ì²´ì´ë
í ë¹ ì°ì°ìë ìëì ê°ì´ ì¬ë¬ ê°ë¥¼ ì°ê²°í ìë ììµëë¤(ì²´ì´ë).
let a, b, c;
a = b = c = 2 + 2;
alert( a ); // 4
alert( b ); // 4
alert( c ); // 4
ì´ë ê² í ë¹ ì°ì°ì를 ì¬ë¬ ê° ì°ê²°í ê²½ì°, íê°ë ì°ì¸¡ë¶í° ì§íë©ëë¤. 먼ì ê°ì¥ ì°ì¸¡ì 2 + 2ê° íê°ëê³ , ê·¸ ê²°ê³¼ê° ì¢ì¸¡ì c, b, aì ìì°¨ì ì¼ë¡ í ë¹ë©ëë¤. 모ë ë³ìê° ë¨ì¼ ê°ì ê³µì íê² ëì£ .
ê·¸ë°ë° ëëë¡ì´ë©´ ì°ì°ì를 ì²´ì´ë íëê² ë³´ë¤ ê°ë ì±ì ìí´ ìëì ê°ì´ ì¤ì ëë ì½ë를 ìì±í길 ê¶ì ë립ëë¤.
c = 2 + 2;
b = c;
a = c;
ì´ë ê² ìì±íë©´ ì½ê¸°ë ì½ê³ , ëì ë¹ ë¥´ê² ìì§ì´ë©° ì½ë를 ì½ì ì ììµëë¤.
ë³µí© í ë¹ ì°ì°ì
íë¡ê·¸ë¨ì ì§ë¤ ë³´ë©´, ë³ìì ì°ì°ì를 ì ì©íê³ ê·¸ 결과를 ê°ì ë³ìì ì ì¥í´ì¼ íë ê²½ì°ê° ì¢ ì¢ ìê¹ëë¤.
ìëì ê°ì´ ë§ì´ì£ .
let n = 2;
n = n + 5;
n = n * 2;
ì´ë, +=ì *=ì°ì°ì를 ì¬ì©íë©´ ì§§ì 문ë²ì¼ë¡ ëì¼í ì°ì°ì ìíí ì ììµëë¤.
let n = 2;
n += 5; // nì 7ì´ ë©ëë¤(n = n + 5ì ëì¼).
n *= 2; // nì 14ê° ë©ëë¤(n = n * 2ì ëì¼).
alert( n ); // 14
ì´ë° âë³µí© í ë¹â ì°ì°ìë ì°ì ì°ì°ìì ë¹í¸ ì°ì°ììë ì ì©í ì ììµëë¤. /=, -= ë±ì ì°ì°ì를 ë§ë¤ ì ìì£ .
ë³µí© í ë¹ ì°ì°ìì ì°ì ììë í ë¹ ì°ì°ìì ëì¼í©ëë¤. ë°ë¼ì ëë¶ë¶ ë¤ë¥¸ ì°ì°ìê° ì¤íë íì ë³µí© í ë¹ ì°ì°ìê° ì¤íë©ëë¤.
let n = 2;
n *= 3 + 5;
alert( n ); // 16 (*=ì ì°ì¸¡ì´ 먼ì íê°ëë¯ë¡, ì ìì n *= 8ê³¼ ëì¼í©ëë¤.)
ì¦ê°Â·ê°ì ì°ì°ì
ì«ì를 íë ë리거ë ì¤ì´ë ê²ì ì주 ì¬ì©ëë ì°ì°ì ëë¤.
ìë°ì¤í¬ë¦½í¸ììë ì´ë° ì°ì°ì í´ì£¼ë ì°ì°ì를 ì ê³µí©ëë¤.
-
ì¦ê°(increment) ì°ì°ì
++ë ë³ì를 1 ì¦ê°ìíµëë¤.let counter = 2; counter++; // counter = counter + 1ê³¼ ëì¼íê² ëìí©ëë¤. íì§ë§ ìì ë ì§§ìµëë¤. alert( counter ); // 3 -
ê°ì(decrement) ì°ì°ì
--ë ë³ì를 1 ê°ììíµëë¤.let counter = 2; counter--; // counter = counter - 1ê³¼ ëì¼íê² ëìí©ëë¤. íì§ë§ ìì ë ì§§ìµëë¤. alert( counter ); // 1
ì¦ê°Â·ê°ì ì°ì°ìë ë³ììë§ ì¸ ì ììµëë¤. 5++ì ê°ì´ ê°ì ì¬ì©íë ¤ê³ íë©´ ìë¬ê° ë°ìí©ëë¤.
++ì-- ì°ì°ìë ë³ì ìì´ë ë¤ì ì¬ ì ììµëë¤.
counter++ì ê°ì´ í¼ì°ì°ì ë¤ì ì¬ ëë, 'íìí(postfix form)'ì´ë¼ê³ ë¶ë¦ ëë¤.++counterì ê°ì´ í¼ì°ì°ì ìì ì¬ ëë, 'ì ìí(prefix form)'ì´ë¼ê³ ë¶ë¦ ëë¤.
íìíê³¼ ì ìíì í¼ì°ì°ìì¸ counter를 1ë§í¼ ì¦ê°ìì¼ ì¤ë¤ë ì ìì ëì¼í ì¼ì í©ëë¤.
ë íì ì°¨ì´ë ++/--ì ë°í ê°ì ì¬ì©í ë ëë¬ë©ëë¤.
ì, ë¤ì ìê¸°í´ ë³´ëë¡ í©ìë¤. ì´ë¯¸ ë°°ì´ ë°ì ê°ì´ 모ë ì°ì°ìë ê°ì ë°íí©ëë¤. ì¦ê°Â·ê°ì ì°ì°ìë ë§ì°¬ê°ì§ì ëë¤. ì ìíì ì¦ê°Â·ê°ì íì ìë¡ì´ ê°ì ë°ííë ë°ë©´, íìíì ì¦ê°Â·ê°ì ì ì 기존 ê°ì ë°íí©ëë¤.
ìë ìì를 íµí´ ì°¨ì´ì ì ì§ì ì´í´ë³´ëë¡ í©ìë¤.
let counter = 1;
let a = ++counter; // (*)
alert(a); // 2
(*)ë¡ íìí ì¤ì ì ìí ++counterë counter를 ì¦ê°ìí¤ê³ ìë¡ì´ ê° 2를 ë°íí©ëë¤. ë°ë¼ì alertë 2를 íìí©ëë¤.
ì´ì íìíì ì´í´ë´ ìë¤.
let counter = 1;
let a = counter++; // (*) ++counter를 counter++ë¡ ë°ê¿
alert(a); // 1
(*)ë¡ íìí ì¤ì íìí counter++ë counter를 ì¦ê°ìí¤ê¸´ íì§ë§, ì¦ê° ì ì 기존 ê°ì ë°íí©ëë¤. ë°ë¼ì alertë 1ì íìí©ëë¤.
ì¦ê°, ê°ì ì°ì°ìì ëí ë´ì©ì ì 리íë©´ ìëì ê°ìµëë¤.
-
ë°í ê°ì ì¬ì©íì§ ìë ê²½ì°ë¼ë©´, ì ìíê³¼ íìíì ì°¨ì´ê° ììµëë¤.
let counter = 0; counter++; ++counter; alert( counter ); // 2, ì ë ë¼ì¸ì ëì¼í ì°ì°ì ìíí©ëë¤. -
ê°ì ì¦ê°ìí¤ê³ ë í, ì¦ê°í ê°ì ë°ë¡ ì¬ì©íë ¤ë©´ ì ìí ì¦ê° ì°ì°ì를 ì¬ì©íë©´ ë©ëë¤.
let counter = 0; alert( ++counter ); // 1 -
ê°ì ì¦ê°ìí¤ì§ë§, ì¦ê° ì ì 기존ê°ì ì¬ì©íë ¤ë©´ íìí ì¦ê° ì°ì°ì를 ì¬ì©íë©´ ë©ëë¤.
let counter = 0; alert( counter++ ); // 0
++/-- ì°ì°ì를 ííì ì¤ê°ì ì¬ì©íë ê²ë ê°ë¥í©ëë¤. ì´ë, ì¦ê°Â·ê°ì ì°ì°ìì ì°ì ììë ë¤ë¥¸ ëë¶ë¶ì ì°ì ì°ì°ìë³´ë¤ ë기 ë문ì, íê°ê° 먼ì ì´ë¤ì§ëë¤.
ìì:
let counter = 1;
alert( 2 * ++counter ); // 4
ì ìì를 ìëì ë¹êµí´ ë´ ìë¤.
let counter = 1;
alert( 2 * counter++ ); // counter++ë '기존'ê°ì ë°íí기 ë문ì 2ê° ì¶ë ¥ë©ëë¤.
ì´ë ê² ì½ë를 ìì±íë ê² ê¸°ì ì ì¼ë¡ 문ì ê° ìë ê²ì ìëì§ë§, í ì¤ìì ì¬ë¬ ê°ì§ ì¼ì ëìì íê³ ì기 ë문ì ì½ëì ê°ë ì±ì´ ë¨ì´ì§ëë¤.
ì½ë를 ì½ì ë ëì âìì§ì¼ë¡â ë¹ ë¥´ê² ìì§ì´ë¤ ë³´ë©´ counter++ì ê°ì ê²ì ëì¹ê¸° ì½ìµëë¤. ë³ìê° ì¦ê°íë¤ë ê²ì ëì¹ ì ìì£ .
'ì½ë í ì¤ì, í¹ì ëì íëâì ê´ë ¨ë ë´ì©ë§ ìì±íë ê² ì¢ìµëë¤. ìëì ê°ì´ ë§ì´ì£ .
let counter = 1;
alert( 2 * counter );
counter++;
ë¹í¸ ì°ì°ì
ë¹í¸ ì°ì°ì(bitwise operator)ë ì¸ì를 32ë¹í¸ ì ìë¡ ë³ííì¬ ì´ì§ ì°ì°ì ìíí©ëë¤.
ì´ë° ë¹í¸ ì¡°ì ê´ë ¨ ì°ì°ìë ìë°ì¤í¬ë¦½í¸ë¿ë§ ìëë¼ ëë¶ë¶ì íë¡ê·¸ëë° ì¸ì´ìì ì§ìí©ëë¤.
ìëë ë¹í¸ ì°ì° ì ì°ì´ë ì°ì°ì 목ë¡ì ëë¤.
- ë¹í¸ AND (
&) - ë¹í¸ OR (
|) - ë¹í¸ XOR (
^) - ë¹í¸ NOT (
~) - ì¼ìª½ ìíí¸(LEFT SHIFT) (
<<) - ì¤ë¥¸ìª½ ìíí¸(RIGHT SHIFT) (
>>) - ë¶í¸ ìë ì¤ë¥¸ìª½ ìíí¸(ZERO-FILL RIGHT SHIFT) (
>>>)
ë¹í¸ ì°ì°ìë ì ìì¤(2ì§ íí)ìì ì«ì를 ë¤ë¤ì¼ í ë ì°ì´ë¯ë¡ ííê² ì°ì´ì§ ììµëë¤. ì¹ ê°ë° ìì ì´ë° ì¼ì´ ì주 ì¼ì´ëì§ ì기 ë문ì ë¹í¸ ì°ì°ì를 ë§ë ì¼ì ê±°ì ìì£ . ê·¸ë 긴 í´ë ìí¸ë¥¼ ë¤ë¤ì¼ í ë ë¹í¸ ì°ì°ìê° ì ì©í기 ë문ì ëê° ëë©´ MDNì ë¹í¸ ì°ì°ì 문ì를 ë³´ìë 걸 ì¶ì²í©ëë¤.
ì¼í ì°ì°ì
ì¼í ì°ì°ì(comma operator) ,ë ì¢ì²ë¼ 보기 íë¤ê³ , í¹ì´í ì°ì°ì ì¤ íëì
ëë¤. ì½ë를 ì§§ê² ì°ë ¤ë ìëë¡ ê°ë ì¬ì©ë©ëë¤. ì´ë° ì½ë를 ë§ë¬ì ë, ì´ë¤ ì°ì° ê²°ê³¼ê° ëì¶ëëì§ ììì¼ íë¯ë¡ ì¼í ì°ì°ìì ëí´ ììë³´ëë¡ í©ìë¤.
ì¼í ì°ì°ì ,ë ì¬ë¬ ííìì ì½ë í ì¤ìì íê°í ì ìê² í´ì¤ëë¤. ì´ë ííì ê°ê°ì´ 모ë íê°ëì§ë§, ë§ì§ë§ ííìì íê° ê²°ê³¼ë§ ë°íëë ì ì ì ìí´ì¼ í©ëë¤.
ìì:
let a = (1 + 2, 3 + 4);
alert( a ); // 7 (3 + 4ì ê²°ê³¼)
ì ìììì 첫 ë²ì§¸ ííì 1 + 2ì íê°ê° ëì§ë§ ê·¸ ê²°ê³¼ë ë²ë ¤ì§ëë¤. 3 + 4ë§ íê°ëì´ aì í ë¹ëì£ .
ì¼í ì°ì°ìì ì°ì°ì ì°ì ììë ë§¤ì° ë®ìµëë¤. í ë¹ ì°ì°ì = ë³´ë¤ ë ë®ì£ . ë°ë¼ì ì ìììì ê´í¸ê° ì¤ìí ìí ì í©ëë¤.
ê´í¸ê° ìì¼ë©´ a = 1 + 2, 3 + 4ìì +ê° ë¨¼ì ìíëì´ a = 3, 7ì´ ë©ëë¤. í ë¹ ì°ì°ì =ë ì¼í ì°ì°ìë³´ë¤ ì°ì ììê° ë기 ë문ì a = 3ì´ ë¨¼ì ì¤íëê³ , ë머ì§(7)ë 무ìëì£ . (a = 1 + 2), 3 + 4를 ì°ì°í ê²ì²ë¼ ë ê²ëë¤.
ì´ë ê² ë§ì§ë§ ííìì ì ì¸í 모ë ê²ì ë²ë¦¬ë ì°ì°ìë ì´ëì ì¬ì©ëë 걸ê¹ì?
ì¬ë¬ ëìì íëì ì¤ìì ì²ë¦¬íë ¤ë ë³µì¡í 구조ìì ì´ë¥¼ ì¬ì©í©ëë¤.
ìëì ê°ì´ ë§ì´ì£ .
// í ì¤ìì ì¸ ê°ì ì°ì°ì´ ìíë¨
for (a = 1, b = 3, c = a * b; a < 10; a++) {
...
}
ì¼í ì°ì°ì를 ì¬ì©í í¸ë¦ì ì¬ë¬ ìë°ì¤í¬ë¦½í¸ íë ììí¬ìì ë³¼ ì ììµëë¤. ì´ ì°ì°ìì ì¬ì© ë¹ëê° ëì§ ìì§ë§, ì¸ê¸íê³ ëì´ê°ë ì´ì ì´ì£ . ì¼í ì°ì°ìë ì½ë ê°ë ì±ì ëìì´ ëì§ ììµëë¤. ë°ë¼ì ê³°ê³°ì´ ìê°í´ 본 í, ì§ì§ íìí ê²½ì°ìë§ ì¬ì©íì길 ë°ëëë¤.
ëê¸
<code>í그를, ì¬ë¬ ì¤ë¡ 구ì±ë ì½ë를 ì½ì íê³ ì¶ë¤ë©´<pre>í그를 ì´ì©íì¸ì. 10ì¤ ì´ìì ì½ëë plnkr, JSBin, codepen ë±ì ìëë°ì¤ë¥¼ ì¬ì©íì¸ì.