ì´ë² ì¥ììë JavaScriptì ííìê³¼ í¨ê» í ë¹, ë¹êµ, ì°ì , ë¹í¸ ê³ì°, ë ¼ë¦¬, 문ìì´, ì¼í ë± ë¤ìí ì°ì°ì를 ì´í´ë³´ê² ìµëë¤.
ì°¸ê³ ììì 모ë ì°ì°ìì ííìì ìì¸í 목ë¡ë íì¸í ì ììµëë¤.
ì°ì°ìJavaScriptì ì°ì°ìë ë¤ìê³¼ ê°ì ì íì¼ë¡ ëë ì ììµëë¤. ì´ ì ì ê°ê°ì ì°ì°ìì ëí´ ì¤ëª íê³ , ì°ì°ì ì°ì ììì ê´í ì 보를 ì ê³µí©ëë¤.
JavaScriptë ì´í ì°ì°ìì ë¨í ì°ì°ì를 모ë í¬í¨íë©°, ì ì¼í ì¼í ì°ì°ìë¡ ì¡°ê±´ ì°ì°ìë ê°ì§ê³ ììµëë¤. ì´í ì°ì°ìë ì°ì°ìì ìê³¼ ë¤ì íëì© ì´ ë ê°ì í¼ì°ì°ìê° íìí©ëë¤.
í¼ì°ì°ì1 ì°ì°ì í¼ì°ì°ì2
ì´í ì°ì°ìì ììë¡ë 3+4
ì x*y
ê° ììµëë¤.
ë¨í ì°ì°ìë ì°ì°ìì ìì´ë ë¤ì íëì í¼ì°ì°ìê° íìí©ëë¤.
ëë
ë¨í ì°ì°ìì ììë¡ë x++
ëë ++x
ê° ììµëë¤.
í ë¹ ì°ì°ìë ì¤ë¥¸ìª½ í¼ì°ì°ìì ê°ì ì¼ìª½ í¼ì°ì°ìì í ë¹í©ëë¤. 기본ì ì¸ í ë¹ ì°ì°ìë ì¤ë¥¸ìª½ì í¼ì°ì°ì ê°ì ì¼ìª½ í¼ì°ì°ì ê°ì í ë¹íë ë±í¸(=
)ë¡, x = y
ë y
ì ê°ì x
ì í ë¹í©ëë¤.
ìëì íìì ë³¼ ì ìë¯, ì°ì°ê³¼ í ë¹ì ëìì ìííë ë³µí© í ë¹ ì°ì°ìë ì¡´ì¬í©ëë¤.
ìì± í ë¹ì´ë¤ ííìì´ ê°ì²´ë¡ íê°ëë¤ë©´, í ë¹ ííìì ì¢íì ê°ì²´ë¡ íê°ëë ííìì ìì±ì í ë¹í ì ììµëë¤. ì를 ë¤ì´,
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!"를 기ë¡íìµëë¤.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!"를 기ë¡íìµëë¤.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
ê° ì ì¸íì§ ìì ê²ì
ëë¤. ì를 ë¤ì´,
ì ëª
ë ¹ë¬¸ì ì¼í ë´¤ì ë 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" == var1
3 == '3'
ë¶ë± (!=
) í¼ì°ì°ìê° ìë¡ ë¤ë¥´ë©´ true
를 ë°íí©ëë¤. var1 != 4
var2 != "3"
ì¼ì¹ (===
) ë í¼ì°ì°ìì ê°ê³¼ íì
ì´ ëª¨ë ê°ì ê²½ì° true
를 ë°íí©ëë¤. Object.is
ì JavaScriptììì ê°ìì ì°¸ê³ íì¸ì. 3 === var1
ë¶ì¼ì¹ (!==
) í¼ì°ì°ìì ê° ëë íì
ì´ ìë¡ ë¤ë¥¼ ê²½ì° true
를 ë°íí©ëë¤. var1 !== "3"
3 !== '3'
í¼ (>
) ì¼ìª½ í¼ì°ì°ìê° ì¤ë¥¸ìª½ í¼ì°ì°ìë³´ë¤ í¬ë©´ true
를 ë°íí©ëë¤. var2 > var1
"12" > 2
í¬ê±°ë ê°ì (>=
) ì¼ìª½ í¼ì°ì°ìê° ì¤ë¥¸ìª½ í¼ì°ì°ìì ê°ê±°ë í¬ë©´ true
를 ë°íí©ëë¤. var2 >= var1
var1 >= 3
ìì (<
) ì¼ìª½ í¼ì°ì°ìê° ì¤ë¥¸ìª½ í¼ì°ì°ìë³´ë¤ ìì¼ë©´ true
를 ë°íí©ëë¤. var1 < var2
"2" < 12
ìê±°ë ê°ì (<=
) ì¼ìª½ í¼ì°ì°ìê° ì¤ë¥¸ìª½ í¼ì°ì°ìì ê°ê±°ë ìì¼ë©´ true
를 ë°íí©ëë¤.
var1 <= var2
var2 <= 5
ì°ì ì°ì°ìì°¸ê³ :
=>
ë ì°ì°ìê° ìëë¼ íì´í í¨ìì í기ë²ì ëë¤.
ì°ì ì°ì°ìë ë ê°ì ì«ì ê°(리í°ë´ ëë ë³ì)ì í¼ì°ì°ìë¡ ë°ìì íëì ì«ì ê°ì ë°íí©ëë¤. íì¤ ì°ì ì°ì°ìë ëí기(+
), 빼기(-
), ê³±í기(*
), ëë기(/
)ì
ëë¤. ì´ ì°ì°ìë¤ì ëë¶ë¶ì ë¤ë¥¸ íë¡ê·¸ëë° ì¸ì´ìì ë¶ëììì ê°ì ì°ì°í ëì ëì¼íê² ëìí©ëë¤. (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 ë¹í¸ ì°ì°ìì ìì½ë³¸ì ë³¼ ì ììµëë¤.
ì°ì°ì ì¬ì©ë² ì¤ëª ë¹í¸ ANDa & 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ì
ëë¤. ìì ìì ëí´ìë ì¤ë¥¸ìª½ ìíí¸ì ë¶í¸ ìë ì¤ë¥¸ìª½ ìíí¸ ë ë¤ ê°ì 결과를 ë°íí©ëë¤. ë
¼ë¦¬ ì°ì°ì
ë
¼ë¦¬ ì°ì°ìë ë³´íµ ë¶ë¦¬ì¸(ë
¼ë¦¬) ê°ê³¼ í¨ê» ì¬ì©í´ì ë¶ë¦¬ì¸ ê°ì ë°íí©ëë¤. ê·¸ë¬ë &&
ì ||
ì°ì°ìë ì¬ì¤ ë í¼ì°ì°ì ì¤ íë를 ë°ííë ê²ì¼ë¡, ë§ì½ ë ì¤ íëê° ë¶ë¦¬ì¸ ê°ì´ ìëë¼ë©´ ë
¼ë¦¬ ì°ì°ìì ë°í ê°ë ë¶ë¦¬ì¸ ê°ì´ ìë ì ììµëë¤. ìëì íìì ë
¼ë¦¬ ì°ì°ìì ì¤ëª
ì ë³¼ ì ììµëë¤.
&&
) 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
를 ë°íí©ëë¤. ë¤ë¥¸ ì°ì°ì를 ì¬ì©í ì ìë ê³³ì´ë¼ë©´ ì¡°ê±´ ì°ì°ìë ì¬ì©í ì ììµëë¤.
ìë¤ ë¤ì´,
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ì ííìì ë¤ìê³¼ ê°ì ë²ì£¼ë¡ 구ë¶í ì ììµëë¤.
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]);
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4