ìë°ì¤í¬ë¦½í¸ë ììê°(문ìì´, ì«ì ë±)ì ë§ì¹ ê°ì²´ì²ë¼ ë¤ë£° ì ìê² í´ì¤ëë¤. ììê°ìë ê°ì²´ììì²ë¼ ë©ìë를 í¸ì¶í ì ìì£ . ììê°ì ë©ìëì ëí´ì ê³§ íìµí ìì ì¸ë° ê·¸ ì ì, ììê°ì ê°ì²´ê° ìëë ê²ì ì기íëë¡ í©ìë¤.
ììê°ê³¼ ê°ì²´ë ë¤ìê³¼ ê°ì ì°¨ì´ì ì´ ììµëë¤.
ììê°:
- ììí ê°ì ëë¤.
- ììíì ì¢
ë¥ë
문ì(string),ì«ì(number),bigint,ë¶ë¦°(boolean),ì¬ë³¼(symbol),null,undefinedíì¼ë¡ ì´ ì¼ê³± ê°ì§ ì ëë¤.
ê°ì²´:
- íë¡í¼í°ì ë¤ìí ì¢ ë¥ì ê°ì ì ì¥í ì ììµëë¤.
{name : "John", age : 30}ì ê°ì´ ì¤ê´í¸{}를 ì¬ì©í´ ë§ë¤ ì ììµëë¤. ìë°ì¤í¬ë¦½í¸ìë ì¬ë¬ ì¢ ë¥ì ê°ì²´ê° ìëë°, í¨ìë ê°ì²´ì ì¼ì¢ ì ëë¤.
ê°ì²´ì ì¥ì ì¤ íëë í¨ì를 íë¡í¼í°ë¡ ì ì¥í ì ìë¤ë ê²ì ëë¤.
let john = {
name: "John",
sayHi: function() {
alert("ì¹êµ¬ì¼ ë°ê°ë¤!");
}
};
john.sayHi(); // ì¹êµ¬ì¼ ë°ê°ë¤!
ê°ì²´ johnì ë§ë¤ê³ , 거기ì ë©ìë sayHi를 ì ìí´ë³´ììµëë¤.
ìë°ì¤í¬ë¦½í¸ë ë ì§, ì¤ë¥, HTML ìì(HTML element) ë±ì ë¤ë£° ì ìê² í´ì£¼ë ë¤ìí ë´ì¥ ê°ì²´ë¥¼ ì ê³µí©ëë¤. ì´ ê°ì²´ë¤ì ê³ ì í íë¡í¼í°ì ë©ìë를 ê°ì§ëë¤.
íì§ë§, ì´ë° 기ë¥ì ì¬ì©íë©´ ìì¤í ììì´ ë§ì´ ì모ëë¤ë ë¨ì ì´ ììµëë¤.
ê°ì²´ë ììê°ë³´ë¤ â무ê²ê³ â, ë´ë¶ 구조를 ì ì§í기 ìí´ ì¶ê° ììì ì¬ì©í기 ë문ì ëë¤.
ììê°ì ê°ì²´ì²ë¼ ì¬ì©í기
ìë°ì¤í¬ë¦½í¸ ì°½ìì(creator)ë ë¤ìê³¼ ê°ì 모ìì ì¸ ìí©ì í´ê²°í´ì¼ë§ íììµëë¤.
- 문ìì´ì´ë ì«ìì ê°ì ììê°ì ë¤ë£¨ì´ì¼ íë ìì ì´ ë§ìë°, ë©ìë를 ì¬ì©íë©´ ìì ì ììíê² í ì ìì ê² ê°ë¤ë ìê°ì´ ëëë¤.
- ê·¸ë°ë° ììê°ì ê°ë¥í í ë¹ ë¥´ê³ ê°ë²¼ìì¼ í©ëë¤.
ì¡°ê¸ ì´ìí´ ë³´ì´ì§ë§, ìë°ì¤í¬ë¦½í¸ ì°½ììë ìëì ê°ì ë°©ë²ì ì¬ì©í´ í´ê²°ì± ì 모ìíììµëë¤.
- ììê°ì ììê° ê·¸ëë¡ ë¨ê²¨ë¬ ë¨ì¼ ê° íí를 ì ì§í©ëë¤.
- 문ìì´, ì«ì, ë¶ë¦°, ì¬ë³¼ì ë©ìëì íë¡í¼í°ì ì ê·¼í ì ìëë¡ ì¸ì´ ì°¨ììì íì©í©ëë¤.
- ì´ë¥¼ ê°ë¥íê² í기 ìí´, ììê°ì´ ë©ìëë íë¡í¼í°ì ì ê·¼íë ¤ íë©´ ì¶ê° 기ë¥ì ì ê³µí´ì£¼ë í¹ìí ê°ì²´, "ìì ëí¼ ê°ì²´(object wrapper)"를 ë§ë¤ì´ ì¤ëë¤. ì´ ê°ì²´ë ê³§ ìì ë©ëë¤.
"ëí¼ ê°ì²´"ë ìì íì
ì ë°ë¼ ì¢
ë¥ê° ë¤ìí©ëë¤. ê° ëí¼ ê°ì²´ë ìì ìë£íì ì´ë¦ì ê·¸ëë¡ ì°¨ì©í´, String,Number,Boolean, Symbolë¼ê³ ë¶ë¦
ëë¤. ëí¼ ê°ì²´ ë§ë¤ ì ê³µíë ë©ìë ìì ë¤ë¦
ëë¤.
ì¸ìë¡ ë°ì 문ìì´ì 모ë ê¸ì를 ë문ìë¡ ë°ê¿ì£¼ë ë©ìë str.toUpperCase()를 ìë¡ ë¤ì´ë³´ê² ìµëë¤.
ë©ìëë ìëì ê°ì´ ëìí©ëë¤.
let str = "Hello";
alert( str.toUpperCase() ); // HELLO
ê°ë¨íì£ ? ìëë str.toUpperCase ()ê° í¸ì¶ë ë ë´ë¶ìì ì¤ì ë¡ ì¼ì´ëë ì¼ì
ëë¤.
- 문ìì´
strì ììê°ì´ë¯ë¡ ììê°ì íë¡í¼í°(toUpperCase)ì ì ê·¼íë ìê° í¹ë³í ê°ì²´ê° ë§ë¤ì´ì§ëë¤. ì´ ê°ì²´ë 문ìì´ì ê°ì ìê³ ìê³ ,toUpperCase()ì ê°ì ì ì©í ë©ìë를 ê°ì§ê³ ììµëë¤. - ë©ìëê° ì¤íëê³ , ìë¡ì´ 문ìì´ì´ ë°íë©ëë¤(
alertì°½ì ì´ ë¬¸ìì´ì´ ì¶ë ¥ë©ëë¤). - í¹ë³í ê°ì²´ë íê´´ëê³ , ììê°
strë§ ë¨ìµëë¤.
ì´ë° ë´ë¶ íë¡ì¸ì¤ë¥¼ íµí´ ììê°ì ê°ë³ê² ì ì§íë©´ì ë©ìë를 í¸ì¶í ì ìë ê²ì ëë¤.
ìë°ì¤í¬ë¦½í¸ ìì§ì ì íë¡ì¸ì¤ì ìµì íì ë§ì ì ê²½ì ìëë¤. ìì ëí¼ ê°ì²´ë¥¼ ë§ë¤ì§ ìê³ ë ë§ì¹ ìì ëí¼ ê°ì²´ë¥¼ ìì±(ëª ì¸ì ì¸ê¸ë¨)í ê²ì²ë¼ ëìíê²ë í´ì£¼ì£ .
ì«ìíë ê³ ì í ë©ìë를 ì§ìí©ëë¤. ë©ìë toFixed(n)를 ì´ì©íë©´ ìíë ì리ìì ììì ìë ì«ì를 ë°ì¬ë¦¼í ì ììµëë¤.
let n = 1.23456;
alert( n.toFixed(2) ); // 1.23
ì«ìí, 문ìì´ìì ë ë§ì ë©ìëì ëí´ ììë³´ê² ìµëë¤.
String/Number/Boolean를 ìì±ìë¡ ì°ì§ ë§ìë¤.Java ë±ì ëªëª ì¸ì´ìì new Number(1) ëë new Boolean(false)ì ê°ì 문ë²ì ì¬ì©í´ ìíë íì
ì "ëí¼ ê°ì²´"를 ì§ì ë§ë¤ ì ììµëë¤.
ìë°ì¤í¬ë¦½í¸ììë íì í¸íì±ì ìí´ ì´ ê¸°ë¥ì ë¨ê²¨ ëìëë°, ì´ë° ìì¼ë¡ ëí¼ ê°ì²´ë¥¼ ë§ëë ê±´ ì¶ì²íì§ ììµëë¤. ëªëª ìí©ìì í¼ëì ë¶ë¬ì¼ì¼í¤ê¸° ë문ì ëë¤.
ìì:
alert( typeof 0 ); // "number"
alert( typeof new Number(0) ); // "object"!
ê°ì²´ë ë ¼ë¦¬ íê° ì íì ì°¸ì ë°íí기 ë문ì, ìë ìììì ì¼ë¿ì°½ì 무조건 ì´ë¦½ëë¤.
let zero = new Number(0);
if (zero) { // ë³ì zeroë ê°ì²´ì´ë¯ë¡, ì¡°ê±´ë¬¸ì´ ì°¸ì´ ë©ëë¤.
alert( "ê·¸ë°ë° ì¬ë¬ë¶ì zeroê° ì°¸ì´ë¼ë ê²ì ëìíìëì!?!" );
}
ê·¸ë°ë°, new를 ë¶ì´ì§ ìê³ String / Number / Booleanì ì¬ì©íë ê±´ ê´ì°®ìµëë¤. new ìì´ ì¬ì©íë©´ ììì ë§ê² ì¸ì를 ìíë íì ììê°(문ìì´, ì«ì, ë¶ë¦° ê°)ì¼ë¡ ë°ê¿ì¤ëë¤. ì주 ì ì©íì£ .
ìì:
let num = Number("123"); // 문ìì´ì ì«ìë¡ ë°ê¿ì¤
null/undefinedë ë©ìëê° ììµëë¤.í¹ì ìë£íì¸ nullê³¼ undefinedì ììê°(null/undefined)ì ìì ê°ì ë²ì¹ì ë°ë¥´ì§ ììµëë¤. ì´ ìë£íê³¼ ì°ê´ëë "ëí¼ ê°ì²´"ë ìê³ , ë©ìëë ì ê³µíì§ ììµëë¤. ì´ë¤ ì미ììë ë ìë£íì´ "ê°ì¥ ììì "ì´ë¼ í ì ìì ê² ê°ìµëë¤.
ë ìë£íì ìí ê°ì íë¡í¼í°ì ì ê·¼íë ¤ íë©´ ìë¬ê° ë°ìí©ëë¤.
alert(null.test); // error
Summary
- 'nullâê³¼ 'undefinedâ를 ì ì¸í ììê°ì ë¤ìí ë©ìë를 í¸ì¶í ì ììµëë¤. ì´ì ëí´ì ë³ëì ì±í°ìì ê³§ ììë³´ëë¡ íê² ìµëë¤.
- ììê°ì ë©ìë를 í¸ì¶íë ¤ íë©´ ìì ê°ì²´ê° ë§ë¤ì´ì§ëë¤. ê·¸ë°ë° ìë°ì¤í¬ë¦½í¸ ìì§ì ë´ë¶ ìµì íê° ì ëì´ìì´ ë©ìë를 í¸ì¶í´ë ë§ì 리ìì¤ë¥¼ ì°ì§ ììµëë¤.
ëê¸
<code>í그를, ì¬ë¬ ì¤ë¡ 구ì±ë ì½ë를 ì½ì íê³ ì¶ë¤ë©´<pre>í그를 ì´ì©íì¸ì. 10ì¤ ì´ìì ì½ëë plnkr, JSBin, codepen ë±ì ìëë°ì¤ë¥¼ ì¬ì©íì¸ì.