λ¨Όμ μ»΄ν¨ν° μ¬μ΄μΈμ€μμ κ°μ²΄λ ν΄λμ€μμ μ μν κ²μ ν λλ‘ λ©λͺ¨λ¦¬(μ€μ μ μ₯곡κ°)μ ν λΉλ κ²μΌλ‘ νλ‘κ·Έλ¨μμ μ¬μ©λλ λ°μ΄ν° λλ μλ³μμ μν΄ μ°Έμ‘°λλ 곡κ°μ μλ―Ένλ©°, λ³μ, μλ£ κ΅¬μ‘°, ν¨μ λλ λ©μλκ° λ μ μλ€
(μ¦)βοΈμλ³μλ‘ μ°Έμ‘°ν μ μλ λ©λͺ¨λ¦¬μ μλ κ°βοΈμ΄λ€
κ°μ²΄λ μμ±μ μ΄λ¦μ ν€λ‘ μ¬μ©νλ μ°κ΄ λ°°μ΄μ΄λΌκ³ μκ°ν μ μμ΅λλ€. λ³΄ν΅ κ°μ²΄μ μμ±μ λ©μλμ ꡬλ³ν΄μ λ§νμ§λ§ μλ‘μ μ°¨μ΄λ λΆνμ€ν©λλ€. λ©μλλ νΈμΆν μ μλ μμ±μΌ λΏμΌλ‘, μμ±μ κ°μ΄ Functionμ κ°λ¦¬ν€λ μ°Έμ‘°λΌλ©΄ κ·Έ μμ±μ λ©μλλΌκ³ ν©λλ€.
- μλ³μ : μ΄λ€ λμμ μ μΌνκ² μλ³ λ° κ΅¬λ³ν μ μλ μ΄λ¦
- λ©λͺ¨λ¦¬μ μλ κ° : ν λΉλ κ°. (λ©λͺ¨λ¦¬ μ£Όμκ° X)
μλ°μ€ν¬λ¦½νΈμμ, κ°μ²΄λ μμ±λ€μ λ΄κ³ μλ κ°λ°©μΌλ‘ λ³Ό μ μλ€. 1ππ» κ°μ²΄ 리ν°λ΄ λ¬Έλ² (object literal syntax) μΌλ‘ μ νμ μΌλ‘ λͺ κ°μ§ μμ±μ μ΄κΈ°νν μ μκ³ , κ·Έλ¬κ³ λμ μμ±λ€μ μΆκ°νκ±°λ μ κ±°ν μλ μλ€.
μμ±κ°μ κ°μ²΄λ₯Ό ν¬ν¨ν μ΄λ ν μλ£νλ λ μ μλ€. κ·Έ λλΆμ 볡μ‘ν λ°μ΄ν° ꡬ쑰λ₯Ό νμ±νλκ² κ°λ₯ν΄μ§λ€. μμ±μ ν€ (μ κ·Όμ) (property) κ°μΌλ‘ μλ³λλ€. ν€ κ°μ String μ΄κ±°λ Symbol κ°μ΄λ€. λ°μ΄ν° (Data) (κ°) Data(κ°)μ μ΄λ€ μλ£νμ΄λ κ°λ₯νλ€
keyλ valueμ κ°μ κ°μ§κ³ μλ€λ©΄ property, valueμ μ΄λ€ κΈ°λ₯μ νλ ν¨μλ₯Ό κ°μ§κ³ μλ°λ©΄ method λΌκ³ λΆλ₯Έλ€.
λ¬Έμ(String), λ μ§(Date), λ°°μ΄(Array), μν(Math) κ°μ²΄ λ±μ΄ μλ€
Symbol >> ES6μμ μλ‘κ² μΆκ°λ typeμΌλ‘ λ³κ²½ λΆκ°λ₯ν μμ νμ μ κ°μ΄λ€. μ¬λ³Όμ μ£Όλ‘ μ΄λ¦μ μΆ©λ μνμ΄ μλ μ μΌν κ°μ²΄μ νλ‘νΌν° ν€(property key)λ₯Ό λ§λ€κΈ° μν΄ μ¬μ©νλ€.
// ν€κ°μ΄ String, symbolμΌ κ²½μ° μμ // Boolean, null, undefined, Number, ObjectμΈ κ²½μ° μ λ¨ μμ
ν€κ° - μ΄λ¦μ μΆ©λ μνμ΄ μλ μ μΌν κ°μ²΄μ νλ‘νΌν° ν€(Symbol)μ μ¬μ©νκΈ° λλ¬Έμ 'for', 'let', 'return' λ± λ³μλͺ μΌλ‘λ μ¬μ©ν μ μλ μμ½μ΄λ₯Ό μ¬μ© κ°λ₯νλ€.(μ§μ)
λ©μλλ₯Ό μ°Έμ‘°ν λ λ©μλ μ΄λ¦ λ€μ κ΄νΈ(())λ₯Ό λΆμ΄μ§ μμΌλ©΄, λ©μλκ° μλ νλ‘νΌν° κ·Έ μ체λ₯Ό μ°Έμ‘°νκ² λ©λλ€.
λ°°μ΄(Array) : μμλ₯Ό κ°μ§λ€.
κ°μ²΄(Object) : μλ―Έλ₯Ό κ°μ§λ€.
κ°μ²΄μμ μ¬μ©νλ λ°λ³΅λ¬Έμ for in
for( let key in obj )
for inλ¬Έμ κ°μ²΄μμ λͺ¨λ ν€λ₯Ό μ°Ύμ βkeyβλΌλ λ³μμ ν λΉνλ€.// Object in forλ¬Έ μμ
constλ‘ μ μΈνλλΌλ Numberκ°μ μμ λ μ μλ€.
μ νκΈ°λ², λκ΄νΈ νκΈ°λ² μ°¨μ΄ 1. ν€κ°μ΄ μ«μ 2. alertμ°½ 3. λμ΄μ°κΈ°
ν€κ° μ μ νλ‘νΌν°μΈ κ²½μ° μλμΌλ‘ μ€λ¦μ°¨μ μ λ ¬.
κ·ΈμΈ ν€κ°μ μΆκ°ν μμλλ‘ μ λ ¬.
Object Lookup table >> JS 곡μλ¬Έμ μ©μ΄ X (λ€λ₯Έ κ³³μμ μ λ)
1 ππ»κ°μ²΄ 리ν°λ΄ λ¬Έλ²
- μμ±λͺ κ³Ό μμ±κ°μ λ³μλͺ μ΄ κ°λ€λ©΄ νλλ‘ ν΅μΌ (μλ΅ κ°λ₯) <λ¨μΆ νλ‘νΌν°>
(Shorthand Properties), (Concise Method)const NAME = 'LEE'; const object1 = { NAME : NAME } console.log(object1.NAME); // >> 'LEE' const NAME = 'LEE'; const object1 = { NAME } console.log(object1.NAME); // >> 'LEE'
- μμ±κ°μΌλ‘ ν¨μ(function())κ° μ μ λ λ 'function' μλ΅ κ°λ₯
const object1 = { method1 : function() { console.log('Wooahan-agile'); }, }; object1.method1(); // >> 'Wooahan-agile' const object1 = { method1() { console.log('Wooahan-agile'); }, }; object1.method1(); // >> 'Wooahan-agile'
- λμ μμ±λͺ μ μ κ°λ₯ (Computed Property Name)
λμ μμ±λͺ μ΄λ μμ±λͺ μ λ³μλ‘ μ¬μ©νλ κ²
propertyλ‘ ν νλ¦Ώ 리ν°λ΄ μ¬μ© κ°λ₯ name1, name2 ... μμconst object1 = { name: 'LEE', }; var weight = "무κ²"; object1[weight] = 75; console.log(object1); // >> //{ // name : 'LEE', // λ¬΄κ² : 75, //} let weight = '무κ²'; const object1 = { name : 'LEE', [weight] : 75, }; // >> // { // name : 'LEE', // λ¬΄κ² : 75, //}
κ°μ²΄ μμ±μ
var obj1 = {}; obj1.name = 'Lee'; // Object() μμ±μ ν¨μ var obj2 = new Object(); obj2.name = 'Lee'; // μμ±μ ν¨μ function F() {} var obj3 = new F(); obj3.name = 'Lee';