ííìê³¼ ì°ì°ì
ì´ë² ì¥ììë JavaScriptì ííìê³¼ í¨ê» í ë¹, ë¹êµ, ì°ì , ë¹í¸ ê³ì°, ë ¼ë¦¬, 문ìì´, ì¼í ë± ë¤ìí ì°ì°ì를 ì´í´ë³´ê² ìµëë¤.
ì°¸ê³ ììì 모ë ì°ì°ìì ííìì ìì¸í 목ë¡ë íì¸í ì ììµëë¤.
ì°ì°ì
JavaScriptì ì°ì°ìë ë¤ìê³¼ ê°ì ì íì¼ë¡ ëë ì ììµëë¤. ì´ ì ì ê°ê°ì ì°ì°ìì ëí´ ì¤ëª íê³ , ì°ì°ì ì°ì ììì ê´í ì 보를 ì ê³µí©ëë¤.
- í ë¹ ì°ì°ì
- ë¹êµ ì°ì°ì
- ì°ì ì°ì°ì
- ë¹í¸ ì°ì°ì
- ë ¼ë¦¬ ì°ì°ì
- 문ìì´ ì°ì°ì
- ì¡°ê±´ (ì¼í) ì°ì°ì
- ì¼í ì°ì°ì
- ë¨í ì°ì°ì
- ê´ê³ ì°ì°ì
JavaScriptë ì´í ì°ì°ìì ë¨í ì°ì°ì를 모ë í¬í¨íë©°, ì ì¼í ì¼í ì°ì°ìë¡ ì¡°ê±´ ì°ì°ìë ê°ì§ê³ ììµëë¤. ì´í ì°ì°ìë ì°ì°ìì ìê³¼ ë¤ì íëì© ì´ ë ê°ì í¼ì°ì°ìê° íìí©ëë¤.
í¼ì°ì°ì1 ì°ì°ì í¼ì°ì°ì2
ì´í ì°ì°ìì ììë¡ë 3+4ì x*yê° ììµëë¤.
ë¨í ì°ì°ìë ì°ì°ìì ìì´ë ë¤ì íëì í¼ì°ì°ìê° íìí©ëë¤.
ì°ì°ì í¼ì°ì°ì
ëë
í¼ì°ì°ì ì°ì°ì
ë¨í ì°ì°ìì ììë¡ë x++ ëë ++xê° ììµëë¤.
í ë¹ ì°ì°ì
í ë¹ ì°ì°ìë ì¤ë¥¸ìª½ í¼ì°ì°ìì ê°ì ì¼ìª½ í¼ì°ì°ìì í ë¹í©ëë¤. 기본ì ì¸ í ë¹ ì°ì°ìë ì¤ë¥¸ìª½ì í¼ì°ì°ì ê°ì ì¼ìª½
í¼ì°ì°ì ê°ì í ë¹íë ë±í¸(=)ë¡, x = y ë yì ê°ì xì
í ë¹í©ëë¤.
ìëì íìì ë³¼ ì ìë¯, ì°ì°ê³¼ í ë¹ì ëìì ìííë ë³µí© í ë¹ ì°ì°ìë ì¡´ì¬í©ëë¤.
| ì´ë¦ | ë¨ì¶ ì°ì°ì | ë» |
|---|---|---|
| í ë¹ | x = y |
x = y |
| ëí기 í ë¹ | x += y |
x = x + y |
| 빼기 í ë¹ | x -= y |
x = x - y |
| ê³±í기 í ë¹ | x *= y |
x = x * y |
| ëë기 í ë¹ | x /= y |
x = x / y |
| ëë¨¸ì§ í ë¹ | x %= y |
x = x % y |
| ê±°ëì ê³± í ë¹ | x **= y |
x = x ** y |
| ì¼ìª½ ìíí¸ í ë¹ | x <<= y |
x = x << y |
| ì¤ë¥¸ìª½ ìíí¸ í ë¹ | x >>= y |
x = x >> y |
| ë¶í¸ ìë ì¤ë¥¸ìª½ ìíí¸ í ë¹ | x >>>= y |
x = x >>> y |
| ë¹í¸ AND í ë¹ | x &= y |
x = x & y |
| ë¹í¸ XOR í ë¹ | x ^= y |
x = x ^ y |
| ë¹í¸ OR í ë¹ | x |= y |
x = x | y |
| ë ¼ë¦¬ AND í ë¹ | x &&= y |
x && (x = y) |
| ë ¼ë¦¬ OR í ë¹ | x ||= y |
x || (x = y) |
| ë ë³í© í ë¹ | x ??= y |
x ?? (x = y) |
ìì± í ë¹
ì´ë¤ ííìì´ ê°ì²´ë¡ íê°ëë¤ë©´, í ë¹ ííìì ì¢íì ê°ì²´ë¡ íê°ëë ííìì ìì±ì í ë¹í ì ììµëë¤. ì를 ë¤ì´,
let obj = {};
obj.x = 3;
console.log(obj.x); // 3 ì¶ë ¥.
console.log(obj); // { x: 3 } ì¶ë ¥.
const key = "y";
obj[key] = 5;
console.log(obj[key]); // 5 ì¶ë ¥.
console.log(obj); // { x: 3, y: 5 } ì¶ë ¥.
ê°ì²´ì ê´í ë ë§ì ì 보를 ê°ì²´ë¡ ìì í기ìì ì°¾ìë³´ì¸ì.
ì´ë¤ ííìì´ ê°ì²´ë¡ íê°ëì§ ìì¼ë©´, ê·¸ ííìì ìì±ì ëí í ë¹ ííìì ì¤ì ë¡ë í ë¹íì§ ììµëë¤.
let val = 0;
console.log((val.x = 3)); // 3 ì¶ë ¥.
console.log(val.x); // undefined ì¶ë ¥.
console.log(val); // 0 ì¶ë ¥.
ìì ë¶ê°ë¥í ìì±ì´ë, ìì±ì´ ìë ííì(nullì´ë undefined)ì¼ë¡ í ë¹ì ìëíë©´ ì¤ë¥ê° ë°ìí©ëë¤.
구조 ë¶í´
구조 ë¶í´ í ë¹ êµ¬ë¬¸ì JavaScript ííì ì¤ íëë¡, ê°ì²´ë ë°°ì´ì ìì±í ëì ë¹ì·í 구문ì¼ë¡ ì¬ì©í´ì ì´ë¤ ê°ì²´ë ë°°ì´ìì ë°ì´í°ë¥¼ ì¶ì¶í ì ììµëë¤.
var foo = ["one", "two", "three"];
// 구조 ë¶í´ ìì
var one = foo[0];
var two = foo[1];
var three = foo[2];
// 구조 ë¶í´ ì¬ì©
var [one, two, three] = foo;
ë°í ê°ê³¼ ì²´ì´ë
ì¼ë°ì ì¼ë¡, í ë¹ ííìì ë³ì ì ì¸(const, let, var)ê³¼ í¨ê» ì°ì´ê±°ë ë
립ì ì¸ ëª
ë ¹ë¬¸ì¼ë¡ ì¬ì©ë©ëë¤.
// ë³ì x를 ì ì¸í´ì f()ì ê²°ê³¼ë¡ ì´ê¸°í,
// x = f() í ë¹ ííìì ê²°ê³¼ë ë²ë ¤ì§.
let x = f();
// ë³ì x를 ì ì¸í´ì g()ì ê²°ê³¼ë¡ ì´ê¸°í,
// x = g() í ë¹ ííìì ê²°ê³¼ë ë²ë ¤ì§.
x = g(); // ë³ì x를 g()ì ê²°ê³¼ë¡ ì¬í ë¹.
ê·¸ë°ë°, ë¤ë¥¸ ííìë¤ì²ë¼ x = f()ì ê°ì í ë¹ ííìë ê²°ê³¼ ê°ì¼ë¡ íê°ë©ëë¤. ë³´íµ ì´ ê°ì ì¬ì©íì§ ìì§ë§, ê·¸ëë ë¤ë¥¸ íê°ìì ê°ì¼ë¡ ì¬ì©í ì ìë¤ë ì ì ë°ëì§ ììµëë¤.
í ë¹ ì²´ì´ëì´ë, ë¤ë¥¸ ííìì ì¤ì²©ë í ë¹ì ììí기 íë ëìì ë³´ì¼ ì ììµëë¤. ê·¸ëì ì´ë¤ JavaScript ì¤íì¼ ê°ì´ëììë í ë¹ì ì²´ì´ëíê±°ë ì¤ì²©íë 걸 ì§ìíë¼ ë§í©ëë¤. ì´ì¨ë , í ë¹ ì²´ì´ëê³¼ ì¤ì²©ì ê°ë ë§ì£¼ì¹ê² ëë¯ë¡ ì´ë»ê² ëìíëì§ë ììëë ê² ì¢ìµëë¤.
í ë¹ ííìì ì²´ì´ëíê±°ë ì¤ì²©í¨ì¼ë¡ì¨ í ë¹ì 결과를 ë¤ì ë¤ë¥¸ ë³ìì í ë¹í ì ììµëë¤. ìëë©´ ì½ìì 기ë¡í ìë ìê³ , ë°°ì´ ë¦¬í°ë´ì´ë í¨ì í¸ì¶ì ì¬ì©í ìë ììµëë¤.
let x;
const y = (x = f()); // ëë const y = x = f(); ì ê°ì.
console.log(y); // x = f() í ë¹ì ë°í ê°ì 기ë¡.
console.log((x = f())); // ë°í ê°ì ì§ì 기ë¡.
// í ë¹ ííìì ë³´íµ ííìì 기ëíë ê³³ì´ë¼ë©´
// ì´ëìë ì¤ì²©í´ ì¬ì©í ì ìì¼ë©°
// ë°°ì´ ë¦¬í°ë´ì ììë í¨ìì 매ê°ë³ìë ê·¸ë° ê³³ ì¤ ì¼ë¶ì.
console.log([0, (x = f()), 0]);
console.log(f(0, (x = f()), 0));
íê° ê²°ê³¼ë ì쪽 íì "ë»" ì´ìì = 기í¸ì ì°í ííì ê²°ê³¼ì ê°ìµëë¤. ê·¸ëì x = f()ì íê° ê²°ê³¼ë f()ì íê° ê²°ê³¼ì ê°ê³ , x += f()ì íê° ê²°ê³¼ë x + f()ì ê°ì¼ë©°, x **= f()ë x ** yì ê°ìµëë¤.
ë
¼ë¦¬ í ë¹ì¸ (x &&= y), (x ||= y), (x ??= y)ì ê²½ì°ìë í ë¹ ë¶ë¶ì ì ì¸í ë
¼ë¦¬ ì°ì°ì 결과를 ë°íí©ëë¤. ë°ë¼ì ê°ê° x && y, x || y, x ?? yì 결과를 ë°íí©ëë¤.
í ë¹ ííìì ê´í¸ë ë°°ì´ ë¦¬í°ë´ê°ì 그룹 ì°ì°ì ìì´ ì²´ì´ëíë©´, í ë¹ ííìì ì¤ë¥¸ìª½ìì ì¼ìª½ì¼ë¡ 묶ì´ì§ë§(ì°ì¸¡ ê²°í©), ì¼ìª½ìì ì¤ë¥¸ìª½ì¼ë¡ íê°ë©ëë¤.
ì°¸ê³ ë¡, ììí =ì ì ì¸í 모ë í ë¹ ì°ì°ìì íê° ê²°ê³¼ ê°ì íì ê³ì°í기 ì ì ê°ì 기ë°í©ëë¤.
ì를 ë¤ì´, ë¤ìê³¼ ê°ì í¨ì f, gì ë³ì x, yê° ì ì¸ë ìí©ì ê°ì í´ ë³´ê² ìµëë¤.
function f() {
console.log("F!");
return 2;
}
function g() {
console.log("G!");
return 3;
}
let x, y;
ë¤ì ì¸ ìì 를 íì¸í´ ë³´ì¸ì.
y = x = f();
y = [f(), (x = g())];
x[f()] = g();
íê° ìì 1
=ì ì°ì¸¡ ê²°í©ì í기 ë문ì y = x = f()ë y = (x = f())ì ê°ìµëë¤. íì§ë§ íê°ë ì¼ìª½ìì ì¤ë¥¸ìª½ì¼ë¡ ëìê°ë¯ë¡,
- í ë¹ ííì
y = x = f()ì íê°ë¥¼ ììí©ëë¤.- ì´ í ë¹ì ì¢íì¸
yê°,yë¼ë ì´ë¦ì ë³ì ì°¸ì¡°ë¡ íê°ë©ëë¤. - í ë¹ ííì
x = f()ì íê°ë¥¼ ììí©ëë¤.- ì´ í ë¹ì ì¢íì¸
xê°,xë¼ë ì´ë¦ì ë³ì ì°¸ì¡°ë¡ íê°ë©ëë¤. - í¨ì í¸ì¶
f()ê° ì½ìì "F!"를 기ë¡í í ì«ì2ë¡ íê°ë©ëë¤. f()ì ê²°ê³¼ì¸2를xì í ë¹í©ëë¤.
- ì´ í ë¹ì ì¢íì¸
- í ë¹ ííì
x = f()ì íê°ê° ëë¬ìµëë¤. ííìì ê²°ê³¼ ê°ìxì ìë¡ì´ ê°, ì¦2ì ëë¤. - ìì ê²°ê³¼ì¸
2를yìë í ë¹í©ëë¤.
- ì´ í ë¹ì ì¢íì¸
- í ë¹ ííì
y = x = f()ì íê°ê° ëë¬ìµëë¤. ííìì ê²°ê³¼ ê°ìyì ìë¡ì´ ê°, ì¦2ì ëë¤.xìyì2를 í ë¹íê³ , ì½ììë "F!"를 기ë¡íìµëë¤.
íê° ìì 2
y = [ f(), x = g() ] ëí ì¼ìª½ìì ì¤ë¥¸ìª½ì¼ë¡ íê°í©ëë¤.
- í ë¹ ííì
y = [ f(), x = g() ]ì íê°ë¥¼ ììí©ëë¤.- ì´ í ë¹ì ì¢íì¸
yê°,yë¼ë ì´ë¦ì ë³ì ì°¸ì¡°ë¡ íê°ë©ëë¤. - ë°°ì´ ë¦¬í°ë´
[ f(), x = g() ]ì íê°ë¥¼ ììí©ëë¤.- í¨ì í¸ì¶
f()ê° ì½ìì "F!"를 기ë¡í í ì«ì2ë¡ íê°ë©ëë¤. - í ë¹ ííì
x = g()ì íê°ë¥¼ ììí©ëë¤.- ì´ í ë¹ì ì¢íì¸
xê°,xë¼ë ì´ë¦ì ë³ì ì°¸ì¡°ë¡ íê°ë©ëë¤. - í¨ì í¸ì¶
g()ê° ì½ìì "G!"를 기ë¡í í ì«ì3ì¼ë¡ íê°ë©ëë¤. g()ì ê²°ê³¼ì¸3ìxì í ë¹í©ëë¤.
- ì´ í ë¹ì ì¢íì¸
- í ë¹ ííì
x = g()ì íê°ê° ëë¬ìµëë¤. ííìì ê²°ê³¼ ê°ìxì ìë¡ì´ ê°, ì¦3ì ëë¤. ì´ ê²°ê³¼ì¸3ì´ ë°°ì´ ë¦¬í°ë´ì ë ë²ì§¸ ììê° ë©ëë¤. (첫 ë²ì§¸ ììëf()ì ê²°ê³¼ì¸2ì ëë¤)
- í¨ì í¸ì¶
- ë°°ì´ ë¦¬í°ë´
[ f(), x = g() ]ì íê°ê° ëë¬ìµëë¤. ê·¸ ê²°ê³¼ë ë ê°ì ìì를 ê°ì§ ë°°ì´,[ 2, 3 ]ì ëë¤. - ìì ê²°ê³¼ì¸
[ 2, 3 ]ë°°ì´ìyì í ë¹í©ëë¤.
- ì´ í ë¹ì ì¢íì¸
- í ë¹ ííì
y = [ f(), x = g() ]ì íê°ê° ëë¬ìµëë¤. ííìì ê²°ê³¼ ê°ìyì ìë¡ì´ ê°, ì¦[ 2, 3 ]ì ëë¤.xìë3,yìë[ 2, 3 ]ì´ í ë¹ëê³ , ì½ììë "F!" íì "G!"를 기ë¡íìµëë¤.
íê° ìì 3
x[f()] = g() ëí ì¼ìª½ìì ì¤ë¥¸ìª½ì¼ë¡ íê°í©ëë¤. (ì´ ìì ë ì´ë¤ ê°ì²´ê° xì í ë¹ëë¤ë ì¶ê° ê°ì íì ì§íí©ëë¤. ê°ì²´ì ê´í ë ë§ì ì ë³´ë ê°ì²´ë¡ ìì
í기를 ì°¸ê³ íì¸ì)
- í ë¹ ííì
x[f()] = g()ì íê°ë¥¼ ììí©ëë¤.- ì´ í ë¹ì ì¢íì¸
x[f()]ìì± ì ê·¼ì íê°ë¥¼ ììí©ëë¤.- ì´ ìì± ì ê·¼ì
xê°,xë¼ë ì´ë¦ì ë³ì ì°¸ì¡°ë¡ íê°ë©ëë¤. - í¨ì í¸ì¶
f()ê° ì½ìì "F!"를 기ë¡í í ì«ì2ë¡ íê°ë©ëë¤.
- ì´ ìì± ì ê·¼ì
- ì´ í ë¹ì ìì± ì ê·¼
x[f()]ì íê°ê° ëë¬ìµëë¤. ê·¸ ê²°ê³¼ ê°ì ë³ì ìì± ì°¸ì¡°x[2]ì ëë¤. - ë¤ìì¼ë¡, í¨ì í¸ì¶
g()ê° ì½ìì "G!"를 기ë¡í í ì«ì3ì¼ë¡ íê°ë©ëë¤. g()ì ê²°ê³¼ì¸3ìx[2]ì í ë¹í©ëë¤. (ì´ ë¨ê³ëxì ê°ì²´ë¥¼ 미리 í ë¹í ê²½ì°ìë§ ì±ê³µí©ëë¤)
- ì´ í ë¹ì ì¢íì¸
- í ë¹ ííì
x[f()] = g()ì íê°ê° ëë¬ìµëë¤. ííìì ê²°ê³¼ ê°ìx[2]ì ìë¡ì´ ê°, ì¦3ì ëë¤.x[2]ìë3ì´ í ë¹ëê³ , ì½ììë "F!" íì "G!"를 기ë¡íìµëë¤.
í ë¹ ì²´ì´ëì í¼í´ì¼ í ì´ì
í ë¹ ì²´ì´ëì´ë, ë¤ë¥¸ ííìì ì¤ì²©ë í ë¹ì ììí기 íë ëìì ë³´ì¼ ì ììµëë¤. ê·¸ëì íëì ëª ë ¹ë¬¸ ë´ìì í ë¹ì ì²´ì´ëíë ê²ì ì¶ì²íì§ ììµëë¤.
í¹í const, let, var ëª
ë ¹ë¬¸ì ë³ì ì²´ì¸ì ì¬ì©íë©´ ì¢
ì¢
ì ëë¡ ëìíì§ ìê³ , ê°ì¥ ë°ê¹¥ (ì¼ìª½) ë³ìë§ ì ì¸ëë©° ë머ì§ë const/let/varê° ì ì¸íì§ ìì ê²ì
ëë¤. ì를 ë¤ì´,
let z = (y = x = f());
ì ëª
ë ¹ë¬¸ì ì¼í ë´¤ì ë x, y, z ì¸ ë³ì를 ì ì¸íë 모ìµì²ë¼ ë³´ì
ëë¤. íì§ë§ ì¬ì¤ ì ì½ëë ë³ì zë§ ì ì¸í©ëë¤. ëë¨¸ì§ ë yì xë ([ì격 모ë][/ko/docs/web/javascript/reference/strict_mode]ìì ) ì¡´ì¬íì§ ìë ë³ì를 í¥íë ì í¨íì§ ìì 참조거ë, ì¬ì§ì´ (ëì¨í 모ëìì ) xì y를 ì묵ì ì¸ [ì ì ë³ì][/ko/docs/glossary/global_variable]ë¡ ì ì¸í ìë ììµëë¤
ë¹êµ ì°ì°ì
ë¹êµ ì°ì°ìë í¼ì°ì°ì를 ìë¡ ë¹êµíê³ , ë¹êµ ê²°ê³¼ê° ì°¸ì¸ì§ì ë°ë¼ ë
¼ë¦¬ ê°ì ë°íí©ëë¤. í¼ì°ì°ìë¡ë ì«ì, 문ìì´, ë
¼ë¦¬í, ê°ì²´ ê°ì ì¬ì©í ì ììµëë¤. 문ìì´ì Unicode ê°ì ì¬ì©í íì¤ ì¬ì ì ììì ë°ë¼ ë¹êµí©ëë¤. ë§ì½ ë í¼ì°ì°ìê° ìë¡ ë¤ë¥¸ íì
ì´ë©´, JavaScriptë í¼ì°ì°ìë¤ì ìë¡ ë¹êµí기ì ì í©í íì
ì¼ë¡ ë³íí©ëë¤. ì´ ëìì ëê° ë ê°ì 모ë ì«ìë¡ ë³íí í ë¹êµí 결과를 ë³ìµëë¤. ë¹êµ ì°ì°ìì ë°ìíë íì
ë³íì ì ì¼í ìì¸ë
===ê³¼ !== ì°ì°ì를 ì¬ì©í´ ì격 ì¼ì¹ì ë¶ì¼ì¹ ë¹êµë¥¼ ìííë ê²½ì°ì¸ë°, ë ì°ì°ìë
ë¹êµ ì ì í¼ì°ì°ì를 ë³ííì§ ììµëë¤. ìëì íë ë¤ì ìì ì½ë를 ì¬ì©í´ ê°ê°ì ë¹êµ ì°ì°ì를 ì¤ëª
í©ëë¤.
const var1 = 3;
const var2 = 4;
| ì°ì°ì | ì¤ëª | true를 ë°ííë ìì |
|---|---|---|
ëë±
(==)
|
í¼ì°ì°ìê° ìë¡ ê°ì¼ë©´ true를 ë°íí©ëë¤. |
3 == var1
3 == '3'
|
ë¶ë±
(!=)
|
í¼ì°ì°ìê° ìë¡ ë¤ë¥´ë©´ true를 ë°íí©ëë¤. |
var1 != 4
|
ì¼ì¹
(===)
|
ë í¼ì°ì°ìì ê°ê³¼ íì
ì´ ëª¨ë ê°ì ê²½ì° true를 ë°íí©ëë¤.
Object.isì
JavaScriptììì ê°ìì ì°¸ê³ íì¸ì.
|
3 === var1 |
ë¶ì¼ì¹
(!==)
|
í¼ì°ì°ìì ê° ëë íì
ì´ ìë¡ ë¤ë¥¼ ê²½ì° true를 ë°íí©ëë¤.
|
var1 !== "3"
|
í¼
(>)
|
ì¼ìª½ í¼ì°ì°ìê° ì¤ë¥¸ìª½ í¼ì°ì°ìë³´ë¤ í¬ë©´ true를 ë°íí©ëë¤.
|
var2 > var1
|
í¬ê±°ë ê°ì
(>=)
|
ì¼ìª½ í¼ì°ì°ìê° ì¤ë¥¸ìª½ í¼ì°ì°ìì ê°ê±°ë í¬ë©´ true를
ë°íí©ëë¤.
|
var2 >= var1
|
ìì
(<)
|
ì¼ìª½ í¼ì°ì°ìê° ì¤ë¥¸ìª½ í¼ì°ì°ìë³´ë¤ ìì¼ë©´ true를
ë°íí©ëë¤.
|
var1 < var2
|
ìê±°ë ê°ì
(<=)
|
ì¼ìª½ í¼ì°ì°ìê° ì¤ë¥¸ìª½ í¼ì°ì°ìì ê°ê±°ë ìì¼ë©´ true를
ë°íí©ëë¤.
|
|
ì°¸ê³ :
=>ë ì°ì°ìê° ìëë¼
íì´í í¨ìì í기ë²ì
ëë¤.
ì°ì ì°ì°ì
ì°ì ì°ì°ìë ë ê°ì ì«ì ê°(리í°ë´ ëë ë³ì)ì í¼ì°ì°ìë¡ ë°ìì íëì ì«ì ê°ì ë°íí©ëë¤. íì¤ ì°ì ì°ì°ìë
ëí기(+), 빼기(-), ê³±í기(*), ëë기(/)ì
ëë¤. ì´ ì°ì°ìë¤ì
ëë¶ë¶ì ë¤ë¥¸ íë¡ê·¸ëë° ì¸ì´ìì ë¶ëììì ê°ì ì°ì°í ëì ëì¼íê² ëìí©ëë¤. (0 ì¼ë¡ ëë ê²½ì°
Infinity를 ë°ííë ê²ì 주ìíì¸ì) ì를 ë¤ì´,
1 / 2; // 0.5
1 / 2 == 1.0 / 2.0; // ì°¸
JavaScriptë íì¤ ì°ì ì°ì°ì(+, -, *, /) ì¸ìë ìëì íì
ëì´ë ì°ì ì°ì°ì를 ì ê³µí©ëë¤.
| ì°ì°ì | ì¤ëª | ìì |
|---|---|---|
ë머ì§
(%)
|
ì´í ì°ì°ìì ëë¤. ë í¼ì°ì°ì를 ëë´ì ëì ë머ì§ë¥¼ ë°íí©ëë¤. | 12 % 5 ë 2를 ë°íí©ëë¤. |
ì¦ê°
(++)
|
ë¨í ì°ì°ìì
ëë¤. í¼ì°ì°ìì 1ì ëí©ëë¤. ì ì ì°ì°ì(++x)ë¡ ì¬ì©íë©´ í¼ì°ì°ìì 1ì ëí ê°ì
ë°íí©ëë¤. íì ì°ì°ì(x++)ë¡ ì¬ì©í ê²½ì° í¼ì°ì°ìì 1ì ëí기 ì ì ê°ì ë°íí©ëë¤.
|
xê° 3ì¼ ë, ++xë xì 4를 í ë¹í í 4를 ë°íí©ëë¤. ë°ë©´
x++ë 3ì 먼ì ë°íí í xì 4를 í ë¹í©ëë¤.
|
ê°ì
(--)
|
ë¨í ì°ì°ìì ëë¤. í¼ì°ì°ììì 1ì ëºëë¤. ë°í ê°ì ì¦ê° ì°ì°ìì²ë¼ ëìí©ëë¤. |
xê° 3ì¼ ë, --xë xì 2를 í ë¹í í 2를 ë°íí©ëë¤. ë°ë©´
x--ë 3ì 먼ì ë°íí í xì 2를 í ë¹í©ëë¤.
|
ë¨í ë¶ì
(-)
|
ë¨í ì°ì°ìì ëë¤. í¼ì°ì°ìì ë¶í¸ë¥¼ ë°ëë¡ ë°ê¾¼ ê°ì ë°íí©ëë¤. | xê° 3ì¼ ë, -xë -3ì ë°íí©ëë¤. |
ë¨í íë¬ì¤
(+)
|
ë¨í ì°ì°ìì ëë¤. í¼ì°ì°ìê° ì«ì íì ì´ ìëë©´ ì«ìë¡ ë³íì ìëí©ëë¤. |
+"3"ì 3ì ë°íí©ëë¤.+trueë 1ì ë°íí©ëë¤.
|
ê±°ëì ê³± (**) |
base^exponent, ì¦ base를 exponentë¡ ê±°ëì ê³±í 결과를 ë°íí©ëë¤. |
2 ** 3ì 8ì ë°íí©ëë¤.10 ** -1ì 0.1ì ë°íí©ëë¤.
|
ë¹í¸ ì°ì°ì
ë¹í¸ ì°ì°ìë í¼ì°ì°ì를 10ì§ì, 16ì§ì, 8ì§ì ì«ìë¡ ì·¨ê¸íì§ ìê³ , ëì 32ê° ë¹í¸ì ì§í©ì¼ë¡ ì·¨ê¸í©ëë¤. ì를 ë¤ì´, 10ì§ì 9ë 2ì§ì 1001ë¡ ëíë ëë¤. ë¹í¸ ì°ì°ìë ì´ë¬í ì´ì§ë² ííì ëí´ ì°ì°ì ìííì§ë§, ë°íí ë JavaScript íì¤ ì«ìë¡ ë°íí©ëë¤.
ìëì íìì JavaScript ë¹í¸ ì°ì°ìì ìì½ë³¸ì ë³¼ ì ììµëë¤.
| ì°ì°ì | ì¬ì©ë² | ì¤ëª |
|---|---|---|
| ë¹í¸ AND | a & b |
ë í¼ì°ì°ìì ê° ì리 ë¹í¸ì ê°ì´ 모ë 1ì¸ ìì¹ì 1ì ë°íí©ëë¤. |
| ë¹í¸ OR | a | b |
ë í¼ì°ì°ìì ê° ì리 ë¹í¸ì ê°ì´ 모ë 0ì¸ ìì¹ì 0ì ë°íí©ëë¤. |
| ë¹í¸ XOR | a ^ b |
ë í¼ì°ì°ìì ê° ì리 ë¹í¸ì ê°ì´ ìë¡ ê°ì ìì¹ì 0ì ë°íí©ëë¤. [ë í¼ì°ì°ìì ê° ì리 ë¹í¸ì ê°ì´ ìë¡ ë¤ë¥¸ ìì¹ì 1ì ë°íí©ëë¤.] |
| ë¹í¸ NOT | ~ a |
í¼ì°ì°ìì ê° ì리ì ë¹í¸ë¥¼ ë¤ì§ìµëë¤. |
| ì¼ìª½ ìíí¸ | a << b |
aì ì´ì§ ííì bë§í¼ ì¼ìª½ì¼ë¡ ì´ëíê³ , ì¤ë¥¸ìª½ì 0ì¼ë¡ ì±ìëë¤. |
| ì¤ë¥¸ìª½ ìíí¸ | a >> b |
aì ì´ì§ ííì bë§í¼ ì¤ë¥¸ìª½ì¼ë¡ ì´ëíê³ , 1 미ë§ì¼ë¡ ì´ëí ë¹í¸ë ë²ë¦½ëë¤. |
| ë¶í¸ ìë ì¤ë¥¸ìª½ ìíí¸ | a >>> b |
aì ì´ì§ ííì bë§í¼ ì¤ë¥¸ìª½ì¼ë¡ ì´ëíê³ , 1 미ë§ì¼ë¡ ì´ëí ë¹í¸ë ë²ë¦½ëë¤. ì¼ìª½ì 0ì¼ë¡ ì±ìëë¤. |
ë¹í¸ ë ¼ë¦¬ ì°ì°ì
ê°ë ì ì¼ë¡, ë¹í¸ ë ¼ë¦¬ ì°ì°ìë ë¤ìê³¼ ê°ì´ ëìí©ëë¤.
-
ë í¼ì°ì°ì를 32ë¹í¸ ì ìë¡ ë³íí´ì ë¹í¸(0 ê³¼ 1)ì ì°ìì¼ë¡ ííí©ëë¤. ì«ìê° 32ë¹í¸ë¥¼ ì´ê³¼í ê²½ì° ê°ì¥ í° ë¹í¸ë¶í° ë²ë¦½ëë¤. ë¤ìì 32ë¹í¸ê° ëë ì ìì ë³í ìì ì ëë¤.
ì : 1110 0110 1111 1010 0000 0000 0000 0110 0000 0000 0001 í: 1010 0000 0000 0000 0110 0000 0000 0001
-
ì¼ìª½ í¼ì°ì°ìì ê° ë¹í¸ì ì¤ë¥¸ìª½ í¼ì°ì°ìì ê° ë¹í¸ë¥¼ ììëë¡ ìì¼ë¡ ë§ëëë¤. ì¦, 첫 ë¹í¸ë 첫 ë¹í¸ì, ë ë²ì§¸ ë¹í¸ë ë ë²ì§¸ ë¹í¸ì, ... 32ë²ì§¸ ë¹í¸ë 32ë²ì§¸ ë¹í¸ì ì§ì ì§ìµëë¤.
-
ì°ì°ì를 ê°ê°ì ë¹í¸ ìì ëí´ ì ì©í 결과를 ë¹í¸ ë¨ìë¡ êµ¬ì¶í©ëë¤.
ì를 ë¤ì´, 9ì ì´ì§ ííì 1001ì´ê³ , 15ì ì´ì§ ííì 1111ì ëë¤. ë¹í¸ ì°ì°ì를 ì´ ë ê°ì ì ì©íì ëì ê²°ê³¼ë ë¤ìê³¼ ê°ìµëë¤.
| ííì | ê²°ê³¼ | ì´ì§ë² ì¤ëª |
|---|---|---|
15 & 9 |
9 |
1111 & 1001 = 1001 |
15 | 9 |
15 |
1111 | 1001 = 1111 |
15 ^ 9 |
6 |
1111 ^ 1001 = 0110 |
~15 |
-16 |
~ 0000 0000 ... 0000 1111 = 1111 1111 ... 1111 0000 |
~9 |
-10 |
~ 0000 0000 ... 0000 1001 = 1111 1111 ... 1111 0110 |
ì°¸ê³ ë¡, ë¹í¸ NOT ì°ì°ì를 ì¬ì©íë©´ 32ê°ì ë¹í¸ë¥¼ 모ë ë°ì íëë°, ê°ì¥ í° (맨 ì¼ìª½) ë¹í¸ê° 1ì´ë©´ ìì를 ëíë
ëë¤(2ì
ë³´ì ííë²). ~xë -x - 1ê³¼ ê°ì ê°ì¼ë¡ íê°ë©ëë¤.
ë¹í¸ ìíí¸ ì°ì°ì
ë¹í¸ ìíí¸ ì°ì°ìë ìíí¸ë¥¼ ì ì©í ê°ê³¼, ìíí¸í ì릿ì를 í¼ì°ì°ìë¡ ë°ìµëë¤. ìíí¸ ë°©í¥ì ì¬ì©íë ì°ì°ìì ë°ë¼ ë¤ë¦ ëë¤.
ìíí¸ ì°ì°ìë í¼ì°ì°ì를 32ë¹í¸ ì ìë¡ ë³ííê³ , ê²°ê³¼ ê°ì Numberë BigIntë¡ ë°íí©ëë¤.
ì ííë, ì¼ìª½ í¼ì°ì°ìê° BigIntë©´ BigInt를 ë°ííê³ , ê·¸ ì¸ìë Number를
ë°íí©ëë¤.
ìëì íìì ìíí¸ ì°ì°ìì ì¢ ë¥ë¥¼ ë³¼ ì ììµëë¤.
| ì°ì°ì | ì¤ëª | ìì |
|---|---|---|
ì¼ìª½ ìíí¸ (<<)
|
ì¼ìª½ í¼ì°ì°ì를 ì¤ë¥¸ìª½ í¼ì°ì°ìë§í¼ ì¼ìª½ì¼ë¡ ìíí¸í©ëë¤. ì¼ìª½ì¼ë¡ ëì¹ë ë¹í¸ë ë²ë¦¬ê³ , ì¤ë¥¸ìª½ì 0ì¼ë¡ ì±ìëë¤. | 9<<2ë, 1001ì ì¼ìª½ì¼ë¡ 2ë² ìíí¸íë©´ 100100ì´ë¯ë¡ 36ì
ëë¤. |
ì¤ë¥¸ìª½ ìíí¸ (>>)
|
ì¼ìª½ í¼ì°ì°ì를 ì¤ë¥¸ìª½ í¼ì°ì°ìë§í¼ ì¤ë¥¸ìª½ì¼ë¡ ìíí¸í©ëë¤. ì¤ë¥¸ìª½ì¼ë¡ ëì¹ë ë¹í¸ë ë²ë¦¬ê³ , ì¼ìª½ì ì ì¼ í° ë¹í¸ì ê°ì¼ë¡ ì±ìëë¤. |
9>>2ë, 1001ì ì¤ë¥¸ìª½ì¼ë¡ 2ë² ìíí¸íë©´ 10ì´ë¯ë¡ 2ì
ëë¤. ë§ì°¬ê°ì§ë¡
-9>>2ë, ë¶í¸ë¥¼ ì ì§íë¯ë¡ -3ì ë°íí©ëë¤.
|
ë¶í¸ ìë ì¤ë¥¸ìª½ ìíí¸ (>>>)
|
ì¼ìª½ í¼ì°ì°ì를 ì¤ë¥¸ìª½ í¼ì°ì°ìë§í¼ ì¤ë¥¸ìª½ì¼ë¡ ìíí¸í©ëë¤. ì¤ë¥¸ìª½ì¼ë¡ ëì¹ë ë¹í¸ë ë²ë¦¬ê³ , ì¼ìª½ì 0ì¼ë¡ ì±ìëë¤. |
19>>>2ë, 10011ì ì¤ë¥¸ìª½ì¼ë¡ 2ë² ìíí¸íë©´ 100ì´ë¯ë¡ 4ì
ëë¤. ìì ìì ëí´ìë ì¤ë¥¸ìª½
ìíí¸ì ë¶í¸ ìë ì¤ë¥¸ìª½ ìíí¸ ë ë¤ ê°ì 결과를 ë°íí©ëë¤.
|
ë ¼ë¦¬ ì°ì°ì
ë
¼ë¦¬ ì°ì°ìë ë³´íµ ë¶ë¦¬ì¸(ë
¼ë¦¬) ê°ê³¼ í¨ê» ì¬ì©í´ì ë¶ë¦¬ì¸ ê°ì ë°íí©ëë¤. ê·¸ë¬ë
&&ì || ì°ì°ìë ì¬ì¤ ë í¼ì°ì°ì ì¤ íë를 ë°ííë ê²ì¼ë¡, ë§ì½ ë ì¤ íëê°
ë¶ë¦¬ì¸ ê°ì´ ìëë¼ë©´ ë
¼ë¦¬ ì°ì°ìì ë°í ê°ë ë¶ë¦¬ì¸ ê°ì´ ìë ì ììµëë¤. ìëì íìì ë
¼ë¦¬ ì°ì°ìì ì¤ëª
ì ë³¼ ì
ììµëë¤.
| ì°ì°ì | ì¬ì©ë² | ì¤ëª |
|---|---|---|
ë
¼ë¦¬ AND
(&&)
|
expr1 && expr2
|
expr1ì falseë¡ ë³íí ì ìì¼ë©´ expr1ì ë°íí©ëë¤. ê·¸ ì¸ì ê²½ì°ìë
expr2를 ë°íí©ëë¤. ë°ë¼ì ë¶ë¦¬ì¸ ê°ê³¼ í¨ê» ì¬ì©í ê²½ì°, ë ë¤ ì°¸ì¼ ë true를, ê·¸
ì¸ìë false를 ë°íí©ëë¤.
|
ë
¼ë¦¬ OR (||) |
expr1 || expr2 |
expr1ì trueë¡ ë³íí ì ìì¼ë©´ expr1ì ë°íí©ëë¤. ê·¸ ì¸ì ê²½ì°ìë
expr2를 ë°íí©ëë¤. ë°ë¼ì ë¶ë¦¬ì¸ ê°ê³¼ í¨ê» ì¬ì©í ê²½ì°, ë ì¤ íëê° ì°¸ì¼ ë true를,
ê·¸ ì¸ìë false를 ë°íí©ëë¤.
|
ë
¼ë¦¬ NOT
(!)
|
!expr |
ë¨ì¼ í¼ì°ì°ì를 trueë¡ ë³íí ì ìì¼ë©´ false를 ë°íí©ëë¤. ê·¸ ì¸ìë
true를 ë°íí©ëë¤.
|
falseë¡ ë³íí ì ìë ííìì íê° ê²°ê³¼ê° null, 0, NaN, ë¹
문ìì´(""), undefinedì¸ ê²½ì°ì
ëë¤.
ë¤ì ì½ëë && (ë
¼ë¦¬ AND) ì°ì°ìì ìì ì
ëë¤.
var a1 = true && true; // t && të true ë°í
var a2 = true && false; // t && fë false ë°í
var a3 = false && true; // f && të false ë°í
var a4 = false && 3 == 4; // f && fë false ë°í
var a5 = "Cat" && "Dog"; // t && të Dog ë°í
var a6 = false && "Cat"; // f && të false ë°í
var a7 = "Cat" && false; // t && fë false ë°í
ë¤ì ì½ëë || (ë
¼ë¦¬ OR) ì°ì°ìì ìì ì
ëë¤.
var o1 = true || true; // t || të true ë°í
var o2 = false || true; // f || të true ë°í
var o3 = true || false; // t || fë true ë°í
var o4 = false || 3 == 4; // f || fë false ë°í
var o5 = "Cat" || "Dog"; // t || të Cat ë°í
var o6 = false || "Cat"; // f || të Cat ë°í
var o7 = "Cat" || false; // t || fë Cat ë°í
ë¤ì ì½ëë ! (ë
¼ë¦¬ NOT) ì°ì°ìì ìì ì
ëë¤.
var n1 = !true; // !të false ë°í
var n2 = !false; // !fë true ë°í
var n3 = !"Cat"; // !të false ë°í
ë¨ë½ íê°
ë ¼ë¦¬ ì°ì°ìë ì¼ìª½ìì ì¤ë¥¸ìª½ì ììë¡ íê°íë¯ë¡, ë¤ì ê·ì¹ì ì¬ì©í´ì "ë¨ë½"(short-circuit) íê°ê° ê°ë¥íì§ íë³í©ëë¤.
false && ì무거ëë ê±°ì§ì¼ë¡ ë¨ë½ íê°í©ëë¤.true || ì무거ëë ì°¸ì¼ë¡ ë¨ë½ íê°í©ëë¤.
ë ¼ë¦¬ ê·ì¹ì ìì ë¨ë½ íê°ê° íì ì³ìì ë³´ì¦í©ëë¤. ì무거ë ë¶ë¶ì ííìì íê°ë íì§ ìì¼ë¯ë¡, í´ë¹ ííììì ì ë°íê² ëë ë¶ì í¨ê³¼ë ì í ë°ìíì§ ììì 주ìíì¸ì.
ì°¸ê³ ë¡ ||ì ì¬ì©í ë ë²ì§¸ ë¨ë½ íê°ì ê²½ì°, ìµê·¼ ì½ëììë ìë¡ì´
ë ë³í© ì°ì°ì
(??)를 ì¬ì©í ìë ììµëë¤. ë ë³í© ì°ì°ìë 첫 ë²ì§¸ ì°ì°ìê° "ëê³¼ ì ì¬"í, ì¦ nullì´ê±°ë undefinedì¼ ëë§ ë ë²ì§¸ í¼ì°ì°ì를 ë°íí©ëë¤. ''ì
0ë ì í¨í ê°ì´ë¼ë©´ ë ë³í© ì°ì°ìê° ê¸°ë³¸ ê°ì ëíë¼ ë ë ì¢ì ì íì§ì
ëë¤.
문ìì´ ì°ì°ì
문ìì´ì ì¬ì©í ì ìë ë¹êµ ì°ì°ìë¤ ì¸ìë, 문ìì´ ì°ê²°(+) ì°ì°ìë ë 문ìì´ì ê°ì ìë¡ ì°ê²°í ìë¡ì´
문ìì´ì ë°íí©ëë¤.
ì를 ë¤ì´,
console.log("ëë§ì " + "문ìì´"); // ì½ìì "ëë§ì 문ìì´"ì 기ë¡
ë¨ì¶ í ë¹ ì°ì°ìì¸ += ëí 문ìì´ì ì°ê²°ê²°í ë ì¬ì©í ì ììµëë¤.
ì를 ë¤ì´,
var mystring = "í";
mystring += "ê¸"; // "íê¸"ë¡ íê°ëë©°, mystringì "íê¸"ì í ë¹í¨
ì¡°ê±´ (ì¼í) ì°ì°ì
ì¡°ê±´ ì°ì°ìë JavaScriptìì ì¸ ê°ì í¼ì°ì°ì를 ë°ë ì ì¼í ì°ì°ìì ëë¤. ì¡°ê±´ ì°ì°ìë 주ì´ì§ ì¡°ê±´ì ë°ë¼ ë ê° ì¤ íë를 ë°ííë©°, 구문ì ë¤ìê³¼ ê°ìµëë¤.
condition ? val1 : val2;
ë§ì½ conditionì´ ì°¸ì´ë¼ë©´, ì¡°ê±´ ì°ì°ìë val1ì ë°ííê³ , ê·¸ ì¸ìë val2를
ë°íí©ëë¤. ë¤ë¥¸ ì°ì°ì를 ì¬ì©í ì ìë ê³³ì´ë¼ë©´ ì¡°ê±´ ì°ì°ìë ì¬ì©í ì ììµëë¤.
ìë¤ ë¤ì´,
var status = age >= 18 ? "ì±ì¸" : "미ì±ë
ì";
ìì ëª
ë ¹ë¬¸ì ageê° 18 ì´ìì´ë¼ë©´ status ë³ìì "ì±ì¸"ì í ë¹íê³ , ê·¸ë ì§ ìì¼ë©´
"미ì±ë
ì"를 í ë¹í©ëë¤.
ì¼í ì°ì°ì
ì¼í ì°ì°ì(,)ë ë í¼ì°ì°ì를 모ë íê°í í ì¤ë¥¸ìª½ í¼ì°ì°ìì ê°ì ë°íí©ëë¤. ì¼í ì°ì°ìë ì£¼ë¡ for ë°ë³µë¬¸ ììì ì¬ì©íì¬ í ë²ì ë°ë³µì¼ë¡ ì¬ë¬ ë³ì를 ë³ê²½í ë ì¬ì©í©ëë¤. ê¼ íìíì§ ìë¤ë©´, ê·¸ ì¸ì ìí©ì ì¬ì©íë ê²ì ì¢ì§ ìì ì½ë ì¤íì¼ë¡ ì¬ê²¨ì§ëë¤. ëê° ì¼í ì°ì°ìë³´ë¤ë ë ê°ì ë¶ë¦¬ë ëª
ë ¹ë¬¸ì ì¬ì©íë í¸ì´ ë«ìµëë¤.
ì¼í ì°ì°ìì ìì ë¡, 10í 10ì´ì 2ì°¨ì ë°°ì´ a를 ê°ì í ë, ìëì ì½ëë ì¼í ì°ì°ì를 ì¬ì©í´ì ë ê°ì ë³ì를 íë²ì ì
ë°ì´í¸íë 모ìµì ë³´ì
ëë¤. ì½ëì ì¤í ê²°ê³¼ë aì ìì를 ëê°ì ((0, 0), (1, 1), (2, 2), ...)ì¼ë¡ ì¶ë ¥í ê²ì
ëë¤.
var x = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
var a = [x, x, x, x, x];
for (var i = 0, j = 9; i <= j; i++, j--);
// ^
console.log("a[" + i + "][" + j + "]= " + a[i][j]);
ë¨í ì°ì°ì
ë¨í ì°ì°ì ì¤ì§ íëì í¼ì°ì°ìë§ ì¬ì©íë ì°ì°ì ëë¤.
delete
deleteì°ì°ìë ê°ì²´ì ìì±ì ìì í©ëë¤. 구문ì ë¤ìê³¼ ê°ìµëë¤.
delete object.property;
delete object[propertyKey];
delete objectName[index];
ìì 구문ìì, objectNameì ê°ì²´ì ì´ë¦ì´ê³ , propertyë ê°ì²´ì ì¡´ì¬íë ìì±,
propertyKeyë ì¡´ì¬íë ìì±ì ê°ë¦¬í¤ë 문ìì´ì´ë ì¬ë³¼ì
ëë¤.
delete ì°ì°ìê° ìì±ì ì±ê³µì ì¼ë¡ ìì í ì´í, í´ë¹ ìì±ì ì ê·¼íë ¤ê³ íë©´ undefinedê°
ë°íë©ëë¤. deleteë ìì±ì ì ê±°í ì ìë ê²½ì°ìë true를 ë°ííê³ , ì ê±°í ì ìì ë
false를 ë°íí©ëë¤.
delete Math.PI; // false ë°í (ì¤ì ë¶ê°í ìì± ìì ë¶ê°)
const myObj = { h: 4 };
delete myobj.h; // true ë°í (ì¬ì©ì ì ì ìì± ìì ê°ë¥)
ë°°ì´ì ìì ìì í기
ë°°ì´ë íë²í ê°ì²´ì´ë¯ë¡, 기ì ì ì¼ë¡ë delete를 ì¬ì©í´ì ìì를 ì ê±°íë ê²ì´ ê°ë¥í©ëë¤. ê·¸ë¬ë ì´ë
ì¢ì ë°©ë²ì´ ìëë¯ë¡ í¼í´ì¼ í©ëë¤. ë°°ì´ì ìì±ì ì ê±°í´ë ë°°ì´ ê¸¸ì´ ìì±ì ìí¥ì ë°ì§ ìì¼ë©°, ë¤ë¥¸ ììì ì¸ë±ì¤ë
ê·¸ëë¡ ë¨ìììµëë¤. ì´ë° ëìì ìíë¤ë©´ ë¨ìí ê°ì undefinedë¡ ë®ì´ì°ë í¸ì´ í¨ì¬ ë«ìµëë¤. ì¤ì ë¡
ë°°ì´ì ë³ííê³ ì íë©´ spliceì ê°ì ë¤ìí ë°°ì´ ë©ìë를 ì¬ì©íì¸ì.
typeof
typeof ì°ì°ìë ë¤ìê³¼ ê°ì ë°©ë²ì¼ë¡
ì¬ì©í©ëë¤.
typeof operand;
typeof (operand);
typeof ì°ì°ìë íê° ì ì í¼ì°ì°ì íì
ì ëíë´ë 문ìì´ì ë°íí©ëë¤. operandë 문ìì´,
ë³ì, í¤ìë, ê°ì²´ ë± íì
ì ììë¼ ê°ì
ëë¤. 주ìì ê´í¸ë ì í ì¬íì
ëë¤.
ë¤ìê³¼ ê°ì ë³ì를 ê°ì íê² ìµëë¤.
var myFun = new Function("5 + 2");
var shape = "round";
var size = 1;
var foo = ["Apple", "Mango", "Orange"];
var today = new Date();
typeof ì°ì°ìë ìì ë³ìë¤ì ëí´ì ë¤ìê³¼ ê°ì ê°ì ë°íí©ëë¤.
typeof myFun; // "function" ë°í
typeof shape; // "string" ë°í
typeof size; // "number" ë°í
typeof foo; // "object" ë°í
typeof today; // "object" ë°í
typeof dontExist; // "undefined" ë°í
í¤ìë trueì nullì ëí´ìë ë¤ìê³¼ ê°ì 결과를 ë°íí©ëë¤.
typeof true; // "boolean" ë°í
typeof null; // "object" ë°í
ì«ìì 문ìì´ììë ë¤ìê³¼ ê°ì 결과를 ë°íí©ëë¤.
typeof 62; // "number" ë°í
typeof "Hello world"; // "string" ë°í
ê°ì²´ì ìì±ì ì¬ì©íë©´ ìì±ì´ ê°ê³ ìë ê°ì íì ì ë°íí©ëë¤.
typeof document.lastModified; // "string" ë°í
typeof window.length; // "number" ë°í
typeof Math.LN2; // "number" ë°í
ë©ìëì í¨ìì ëí´ì ë¤ìê³¼ ê°ì 결과를 ë°íí©ëë¤.
typeof blur; // "function" ë°í
typeof eval; // "function" ë°í
typeof parseInt; // "function" ë°í
typeof shape.split; // "function" ë°í
ì¬ì ì ìë ê°ì²´ì ëí´ì ë¤ìê³¼ ê°ì 결과를 ë°íí©ëë¤.
typeof Date; // "function" ë°í
typeof Function; // "function" ë°í
typeof Math; // "object" ë°í
typeof Option; // "function" ë°í
typeof String; // "function" ë°í
void
void ì°ì°ìë ë¤ìê³¼ ê°ì´ ì¬ì©í©ëë¤.
void (expression);
void expression;
void ì°ì°ìë ííìì íê°í ë ê°ì ë°ííì§ ìëë¡ ì§ì í©ëë¤. expressionì íê°í
JavaScript ííìì
ëë¤. 주ì ê´í¸ë ì í ì¬íì´ì§ë§, ì¬ì©íë©´ ì¢ìµëë¤.
ê´ê³ ì°ì°ì
ê´ê³ ì°ì°ìë í¼ì°ì°ì를 ìë¡ ë¹êµíê³ , ë¹êµ ê²°ê³¼ê° ì°¸ì¸ì§ì ë°ë¼ ë¶ë¦¬ì¸ ê°ì ë°íí©ëë¤.
in
in ì°ì°ìë ì§ì í ìì±ì´ ì§ì í ê°ì²´ì
ì¡´ì¬í ê²½ì° true를 ë°íí©ëë¤. 구문ì ë¤ìê³¼ ê°ìµëë¤.
propNameOrNumber in objectName;
propNameOrNumberë ìì±ì´ë ë°°ì´ ì¸ë±ì¤ë¥¼ ëíë´ë 문ìì´, ì«ì, ì¬ë³¼ ííìì´ë©°
objectNameì ê°ì²´ì ì´ë¦ì
ëë¤.
ë¤ì ì½ëë in ì°ì°ìì ìì ì
ëë¤.
// ë°°ì´
var trees = ["redwood", "bay", "cedar", "oak", "maple"];
0 in trees; // true ë°í
3 in trees; // true ë°í
6 in trees; // false ë°í
"bay" in trees; // false ë°í (ì¸ë±ì¤ì ìì¹í ê°ì´ ìëë¼
// ì¸ë±ì¤ ì체를 ì§ì í´ì¼ í¨)
"length" in trees; // true ë°í (lengthë Arrayì ìì±ì)
// ë´ì¥ ê°ì²´
"PI" in Math; // true ë°í
var myString = new String("coral");
"length" in myString; // true ë°í
// ì¬ì©ì ì ì ê°ì²´
var mycar = { make: "Honda", model: "Accord", year: 1998 };
"make" in mycar; // true ë°í
"model" in mycar; // true ë°í
instanceof
instanceof ì°ì°ìë ì§ì í ê°ì²´ê°
ì§ì í ê°ì²´ íì
ì ìíë©´ true를 ë°íí©ëë¤.
objectName instanceof objectType;
objectNameì objectTypeê³¼ ë¹êµí ê°ì²´ì ì´ë¦ì´ê³ , objectTypeì
Date, Arrayì ê°ì ê°ì²´ íì
ì
ëë¤.
ë°íìì ê°ì²´ì íì
ì íì¸í íìê° ìì¼ë©´ instanceof ì°ì°ì를 ì¬ì©íì¸ì. ì컨ë ìì¸ ì²ë¦¬ ìì, ì¡ìë¸
ìì¸ì íì
ì ë°ë¼ ë¤ë¥¸ ë°©ë²ì¼ë¡ ì²ë¦¬í ì ììµëë¤.
ë¤ìì ì½ëë instanceof ì°ì°ì를 ì¬ì©í´ì theDay ê°ì²´ê° Date ê°ì²´ì¸ì§ ììë´ë
ìì ì
ëë¤. theDay ê°ì²´ë Date ê°ì²´ì´ê¸° ë문ì, if ëª
ë ¹ë¬¸ ìì ë´ì©ì´
ì¤íë©ëë¤.
var theDay = new Date(1995, 12, 17);
if (theDay instanceof Date) {
// ì¤íí ëª
ë ¹ë¬¸
}
ì°ì°ì ì°ì ìì
ì°ì°ìì ì°ì ììë ííìì íê°í ë ì°ì°ì를 ì ì©íë ìì를 ê²°ì í©ëë¤. ê´í¸ë¥¼ ì¬ì©íë©´ ì°ì ìì를 ë°ê¿ ì ììµëë¤.
ìë íë ì°ì ììê° ëì ìììì ë®ì ììë¡ ì°ì°ì를 ëì´í©ëë¤.
| ì°ì°ì ì í | ê°ë³ ì°ì°ì |
|---|---|
| ë§´ë² ì ê·¼ | . [] |
| ì¸ì¤í´ì¤ í¸ì¶/ìì± | () new |
| ì¦ê° | ! ~ - + ++ -- typeof void delete |
| ê±°ëì ê³± | ** |
| ê³±í기/ëë기 | * / % |
| ëí기/빼기 | + - |
| ë¹í¸ ìíí¸ | << >> >>> |
| ê´ê³ | < <= > >= in instanceof |
| ëë±/ì¼ì¹ | == != === !== |
| ë¹í¸ AND | & |
| ë¹í¸ XOR | ^ |
| ë¹í¸ OR | | |
| ë ¼ë¦¬ AND | && |
| ë ¼ë¦¬ OR | || |
| ì¡°ê±´ | ?: |
| í ë¹ | = += -= **= *= /= %= <<= >>= >>>= &= ^= |= &&= ||= ??= |
| ì¼í | , |
ê°ê°ì ì°ì°ìë¡ í¥íë ë§í¬ë¥¼ í¬í¨í ë ìì¸í íë JavaScript ì°¸ê³ ììì ì°¾ì ì ììµëë¤.
ííì
ííìì´ë ì´ë¤ ê°ì¼ë¡ ì´ííë ììì ì í¨í ì½ë ë¨ì를 ë§í©ëë¤.
모ë ííìì êµ¬ë¬¸ì´ ì í¨íë¤ë©´ ì´ë¤ ê°ì¼ë¡ ì´ííì§ë§, ê°ë ì ì¼ë¡ë ë ê°ì§ ë²ì£¼ë¡ ëë©ëë¤. íëë ë¶ì í¨ê³¼ê° ìë (ìì: ë³ìì ê°ì í ë¹) ííìì´ê³ , ë¤ë¥¸ íëë íê°íë©´ ì´ë¤ ê°ì¼ë¡ ì´ííë ííìì ëë¤.
x = 7ì ìì ë²ì£¼ì í¬í¨ë©ëë¤. ì´ ííìì = ì°ì°ì를 ì¬ì©í´ì ê° 7ì x ë³ìì
í ë¹í©ëë¤. ííì ìì²´ë 7ë¡ íê°ë©ëë¤.
3 + 4ë ë¤ìª½ ë²ì£¼ë¡ ë¤ì´ê°ëë¤. ì´ ííìì + ì°ì°ì를 ì¬ì©í´ì 3ê³¼ 4를 ëíì§ë§, ê²°ê³¼ì¸ 7ì
ë³ìì í ë¹íì§ë ììµëë¤.
JavaScriptì ííìì ë¤ìê³¼ ê°ì ë²ì£¼ë¡ 구ë¶í ì ììµëë¤.
- ì°ì: ì«ì, ì컨ë 3.14159ë¡ íê°ë©ëë¤. ë³´íµ ì°ì ì°ì°ì를 ì¬ì©í©ëë¤.
- 문ìì´: 문ìì´, ì컨ë "íë ë", "234" ë±ì¼ë¡ íê°ë©ëë¤. ë³´íµ ë¬¸ìì´ ì°ì°ì를 ì¬ì©í©ëë¤.
- ë ¼ë¦¬: ì°¸ì´ë ê±°ì§ì¼ë¡ íê°ë©ëë¤. ëê° ë ¼ë¦¬ ì°ì°ì를 í¬í¨í©ëë¤.
- ì¼ì°¨ ííì: JavaScriptì í¤ìëì ì¼ë° ííìì ëë¤.
- ì¢ë³ ííì: ì¢ë³ ê°ì í ë¹ì 목ì ì§ì ëë¤.
ì¼ì°¨ ííì
JavaScriptì í¤ìëì ì¼ë° ííìì ëë¤.
this
íì¬ ê°ì²´ë¥¼ 참조íë ¤ë©´
this í¤ìë를 ì¬ì©íì¸ì. ì¼ë°ì ì¼ë¡
thisë ë©ìëì í¸ì¶ ê°ì²´ë¥¼ 참조í©ëë¤. ë¤ìê³¼ ê°ì´, this를 ì ì´ë ëê´í¸ í기ë²ê³¼ í¨ê»
ì¬ì©íì¸ì.
this["propertyName"];
this.propertyName;
ìµëì ìµì ê°ì ë°ìì, ì´ë¤ ê°ì²´ì value ìì± ì í¨ì±ì ê²ì¦íë validateë¼ë í¨ì를
ê°ì í´ë´
ìë¤.
function validate(obj, lowval, hival) {
if (obj.value < lowval || obj.value > hival) console.log("ì못ë ê°!");
}
ë¤ìê³¼ ê°ì´, ê° ìì ììì onchange ì´ë²¤í¸ ì²ë¦¬ê¸°ìì validate를 í¸ì¶í ë this를 ì¬ì©í´ì ìì ììì 참조를 ì ê³µí ì ììµëë¤.
<p>18ê³¼ 99 ì¬ì´ì ì를 ì
ë ¥:</p>
<input type="text" name="age" size="3" onchange="validate(this, 18, 99);" />
그룹 ì°ì°ì
그룹ì°ì°ì ()ë ííì íê°ì ì°ì ìì를 ì¡°ì í©ëë¤. ì를 ë¤ì´, ê³±í기ì ëëê¸°ë³´ë¤ ëí기ì 빼기 ì°ì°ì
먼ì ìíí ì ììµëë¤.
var a = 1;
var b = 2;
var c = 3;
// 기본 ì°ì ììììë
a + b * c; // 7
// ì´ë° ììë¡ íê°í¨
a + (b * c); // 7
// ì°ì ìì ì¬ì ì
// ê³±íê¸°ë³´ë¤ ëí기를 먼ì ìí
(a + b) * c; // 9
// ...íë©´ ìëì ê°ì
a * c + b * c; // 9
ì¢ë³ ííì
ì¢ë³ ê°ì í ë¹ì 목ì ì§ì ëë¤.
new
new ì°ì°ì를 ì¬ì©íë©´ ì¬ì©ì ì ì ê°ì²´
íì
ì´ë ë´ì¥ ê°ì²´ íì
ì ì¸ì¤í´ì¤ë¥¼ ìì±í ì ììµëë¤. ìë ì½ëì²ë¼ ì¬ì©íì¸ì.
var objectName = new objectType([param1, param2, ..., paramN]);
super
super í¤ìëë ê°ì²´ì ë¶ëª¨ê° ê°ì§ í¨ì를 í¸ì¶í ë ì¬ì©í©ëë¤. ì를 íë ë¤ë©´, í´ëì¤ìì ë¶ëª¨ì ìì±ì를 í¸ì¶í´ì¼ í ë ì ì©íê² ì¸ ì ììµëë¤.
super([arguments]); // ë¶ëª¨ ìì±ì í¸ì¶
super.functionOnParent([arguments]);