μλ°μ€ν¬λ¦½νΈκ° ν¨μλ₯Ό κ°μ²΄ νμ μ κ°μΌλ‘ νκ°νλ€κ³ ν΄. console.dir(); μ μ¬μ©νλ©΄ κ°μ²΄λ‘ μ¬μ©λλ€λ κ±Έ μ μ μλ€λλ° μ΄λ»κ² νλκ±°μΌ?
μλ°μ€ν¬λ¦½νΈμμ ν¨μλ μ¬μ€ κ°μ²΄ νμ μ κ°μ λλ€. ν¨μλ μ€ν κ°λ₯ν μ½λμΌ λΏλ§ μλλΌ, νλ‘νΌν°λ₯Ό κ°μ§ μ μλ κ°μ²΄λ‘λ μ·¨κΈλ©λλ€. μ΄ λλ¬Έμ, μλ°μ€ν¬λ¦½νΈμμ ν¨μλ μΌκΈ κ°μ²΄λ‘ λΆλ¦¬λ©°, λ€λ₯Έ κ°λ€μ²λΌ λ³μμ μ μ₯λκ±°λ μΈμλ‘ μ λ¬λ μ μμ΅λλ€.
μ΄μ console.dir()μ μ¬μ©νμ¬ ν¨μκ° κ°μ²΄λ‘ νκ°λλ κ²μ νμΈνλ λ°©λ²μ μ€λͺ ν΄λ릴κ²μ.
console.dir()λ?
• **console.dir()**λ νΉμ κ°μ²΄μ μμ±μ νΈλ¦¬ κ΅¬μ‘°λ‘ μΆλ ₯ν΄μ£Όλ μ½μ λ©μλμ λλ€.
• μ΄ λ©μλλ₯Ό μ¬μ©νλ©΄ ν¨μ λ΄λΆμ ꡬ쑰λ₯Ό λ μμΈν νμΈν μ μμ΅λλ€. νΉν ν¨μκ° λ¨μν μ½λ λ©μ΄λ¦¬κ° μλλΌ κ°μ²΄λ‘μ μ΄λ€ νλ‘νΌν°λ₯Ό κ°μ§λμ§λ₯Ό λ³Ό μ μκ² ν΄μ€λλ€.
μμλ‘ μμ보기:
λ¨Όμ ν¨μλ₯Ό μ μνκ³ , κ·Έ ν¨μλ₯Ό console.dir()λ‘ μΆλ ₯ν΄λ³΄κ² μ΅λλ€.
function sayHello() {
console.log("Hello, world!");
}
// ν¨μ μ체λ₯Ό κ°μ²΄λ‘ μΆλ ₯ν΄λ³΄κΈ°
console.dir(sayHello);
κ²°κ³Ό:
console.dir(sayHello)λ₯Ό μ¬μ©νλ©΄, ν¨μκ° κ°μ²΄μ²λΌ λ€μν μμ±μ κ°μ§λ€λ μ¬μ€μ μ½μμμ νμΈν μ μμ΅λλ€. νΈλ¦¬ κ΅¬μ‘°λ‘ ν¨μμ ν¬ν¨λ μμ±λ€μ΄ λνλκ³ , κ·Έ μμ± μ€μμ κ°μ₯ μμ£Ό λ³Ό μ μλ κ²λ€μ μλμ κ°μ΅λλ€.
μ£Όμ μμ±:
• name: ν¨μμ μ΄λ¦μ λνλ λλ€.
• length: ν¨μκ° κΈ°λνλ **λ§€κ°λ³μ(Parameter)**μ κ°μλ₯Ό λνλ λλ€.
• prototype: ν¨μμ νλ‘ν νμ κ°μ²΄λ₯Ό κ°λ¦¬ν΅λλ€. λͺ¨λ ν¨μλ prototypeμ΄λΌλ μμ±μ κ°μ§λ©°, μ΄ μμ±μ ν΄λΉ ν¨μκ° μμ±μ ν¨μλ‘ μ¬μ©λ λ μ€μν μν μ ν©λλ€.
• arguments: νΈμΆλ λ μ λ¬λ μΈμλ₯Ό μ°Έμ‘°ν©λλ€ (ES5 μ΄νλ κΆμ₯λμ§ μμ).
• caller: νΈμΆν ν¨μμ λν μ°Έμ‘°λ₯Ό μ 곡ν©λλ€.
ν¨μκ° κ°μ²΄λ‘ μ¬μ©λλ€λ μ :
μλ°μ€ν¬λ¦½νΈμμ ν¨μλ λ¨μν μ½λ λΈλ‘μ΄ μλλΌ, κ°μ²΄μ²λΌ νλ‘νΌν°λ₯Ό κ°μ§ μ μλ κ°μ΄λΌλ μ μμ κ°λ ₯ν©λλ€. μλ₯Ό λ€μ΄, ν¨μμ μ§μ μμ±μ μΆκ°ν μλ μμ΅λλ€.
function sayHi() {
console.log("Hi");
}
sayHi.customProperty = "I'm a property of this function!";
console.log(sayHi.customProperty); // "I'm a property of this function!"
console.dir(sayHi);
μ΄λ κ² sayHi ν¨μλ κ°μ²΄λ‘ νκ°λκΈ° λλ¬Έμ μλ‘μ΄ μμ±μ μΆκ°ν μ μμ΅λλ€. console.dir(sayHi)λ‘ νμΈνλ©΄, μ°λ¦¬κ° μΆκ°ν customPropertyλ ν¨μ κ°μ²΄μ μμ±μΌλ‘ λνλλ κ²μ νμΈν μ μμ΄μ.
μ 리:
1. ν¨μλ κ°μ²΄μ²λΌ λ€λ£° μ μμ΅λλ€. μ¦, μμ±μ μΆκ°νκ±°λ μμ ν μ μμ΅λλ€.
2. **console.dir()**μ μ¬μ©νλ©΄ ν¨μκ° μ€μ λ‘ κ°μ²΄λ‘μ μ΄λ€ μμ±μ κ°μ§κ³ μλμ§ νΈλ¦¬ κ΅¬μ‘°λ‘ νμΈν μ μμ΅λλ€.
3. μλ°μ€ν¬λ¦½νΈμμ ν¨μλ μΌμ’ μ κ°μ²΄λ‘ μ·¨κΈλλ―λ‘, ν¨μμ λν΄ μΆκ°μ μΈ μ 보λ ꡬ쑰λ₯Ό λ³΄κ³ μΆμ λ console.dir()μ΄ μ μ©ν©λλ€.
μ΄ λ°©μμΌλ‘ ν¨μκ° λ¨μν μ½λ λΈλ‘μ΄ μλλΌ κ°μ²΄λ‘μ λ€μν κΈ°λ₯μ κ°μ§κ³ μλ€λ κ²μ μ½κ² νμΈν μ μμ΅λλ€!
console.dir λ typeof λ λ¬΄μ¨ κΈ°λ₯ μ°¨μ΄κ° μμ΄?
**console.dir()**μ **typeof**λ μλ°μ€ν¬λ¦½νΈμμ κ°μ²΄λ κ°μ μ 보λ₯Ό νμΈν λ μ¬μ©νλ λꡬμ§λ§, λ κ°μ§λ μμ ν λ€λ₯Έ λͺ©μ μ κ°μ§κ³ μμ΅λλ€. κ·Έ μ°¨μ΄λ₯Ό μ½κ² μ€λͺ ν΄λ릴κ²μ.
1. typeof
• λͺ©μ : κ°μ λ°μ΄ν° νμ μ νμΈνλ λ° μ¬μ©λ©λλ€.
• λ°νκ°: typeofλ **λ¬Έμμ΄(String)**λ‘ ν΄λΉ κ°μ λ°μ΄ν° νμ μ λ°νν©λλ€.
• μ¬μ© μ: μ«μ, λ¬Έμμ΄, ν¨μ, κ°μ²΄, λ°°μ΄, null, undefined λ± λ€μν κ°μ νμ μ μκΈ° μν΄ μ¬μ©λ©λλ€.
μμ:
console.log(typeof 42); // "number"
console.log(typeof "Hello"); // "string"
console.log(typeof true); // "boolean"
console.log(typeof function(){}); // "function"
console.log(typeof {}); // "object"
console.log(typeof []); // "object" (λ°°μ΄λ κ°μ²΄λ‘ μ·¨κΈ)
console.log(typeof null); // "object" (νΉμ΄ν κ²½μ°)
console.log(typeof undefined); // "undefined"
typeofμ μ£Όμ νΉμ§:
• κ°λ¨ν κ°μ λ°μ΄ν° νμ μ μ μ μλ λꡬμ λλ€.
• ν¨μλ **“function”**μ΄λΌλ νμ μ λ°ννλλ°, μ΄λ μλ°μ€ν¬λ¦½νΈμμ νΉλ³ν κ²½μ°μ λλ€. μ¬μ€ ν¨μλ κ°μ²΄μ ν μ’ λ₯μ΄μ§λ§, typeofμμλ§ ν¨μλ “function”μ΄λΌκ³ λ°νλ©λλ€.
2. console.dir()
• λͺ©μ : κ°μ²΄μ μμ± κ΅¬μ‘°λ₯Ό νΈλ¦¬ νμμΌλ‘ μΆλ ₯νλ λ° μ¬μ©λ©λλ€.
• λ°νκ°: console.dir()μ κ°μ²΄μ λ΄λΆ ꡬ쑰λ₯Ό μκ°μ μΌλ‘ νμν©λλ€. λΈλΌμ°μ μ½μμμ νΈλ¦¬ νμμΌλ‘ κ°μ²΄μ νλ‘νΌν°μ κ·Έ κ°μ νμν μ μμ΅λλ€.
• μ¬μ© μ: κ°μ²΄λ ν¨μμ μΈλΆ ꡬ쑰λ μμ±μ μκ°μ μΌλ‘ νμΈνκΈ° μν΄ μ¬μ©λ©λλ€.
μμ:
let person = {
name: "John",
age: 30,
greet: function() {
console.log("Hello!");
}
};
// console.dirμ μ¬μ©ν΄ κ°μ²΄μ ꡬ쑰λ₯Ό μκ°μ μΌλ‘ νμΈ
console.dir(person);
console.dir()μ μ£Όμ νΉμ§:
• κ°μ²΄μ ꡬ쑰λ₯Ό νΈλ¦¬ ννλ‘ νμν©λλ€.
• κ°μ²΄μ νλ‘νΌν°, λ©μλ λ±μ λͺ¨λ νμΈν μ μκ³ , κ° νλ‘νΌν°μ νμ κ³Ό κ°μ μμΈν λ³Ό μ μμ΅λλ€.
• λΈλΌμ°μ μ½μμμ νΉν μ μ©νλ©°, 볡μ‘ν κ°μ²΄λ DOM μμλ₯Ό λλ²κΉ ν λ μ¬μ©λ©λλ€.
κΈ°λ₯ μ°¨μ΄ μμ½:
• typeof: κ°μ λ°μ΄ν° νμ μ κ°λ¨ν λ¬Έμμ΄λ‘ λ°νν©λλ€. κ°μ λΆμνλ λ° μ¬μ©ν μ μλ λ§€μ° κΈ°λ³Έμ μΈ λꡬμ λλ€. ν¨μλ “function”, λλ¨Έμ§λ “object”, “number”, “string” λ±μ κ°μ λ°νν©λλ€.
• console.dir(): κ°μ²΄λ ν¨μμ λ΄λΆ ꡬ쑰μ μμ±μ νΈλ¦¬ νμμΌλ‘ μκ°ννμ¬ νμν©λλ€. κ°μ νμνκ³ κ΅¬μ‘°λ₯Ό λΆμνλ λ° λ§€μ° μ μ©ν λꡬμ λλ€.
μμ λΉκ΅:
function example() {
console.log("This is a function");
}
// typeofλ‘ ν¨μμ νμ
νμΈ
console.log(typeof example); // "function"
// console.dirλ‘ ν¨μμ λ΄λΆ ꡬ쑰 νμΈ
console.dir(example); // νΈλ¦¬ ννλ‘ ν¨μμ μμ± νμΈ (name, length, prototype λ±)
• typeof exampleμ λ¨μν “function”μ΄λΌκ³ λ°ννμ§λ§,
• console.dir(example)μ ν¨μ κ°μ²΄μ νλ‘νΌν°(μ: name, length, prototype λ±)μ κ°μ ꡬ쑰μ μΈ μΈλΆ μ 보λ₯Ό 보μ¬μ€λλ€.
μμ½:
• **typeof**λ κ°μ κ°λ¨νκ² λΆμν΄ λ°μ΄ν° νμ μ λ¬Έμμ΄λ‘ μλ €μ£Όλ λꡬμ λλ€.
• **console.dir**λ κ°μ²΄λ ν¨μμ μΈλΆ ꡬ쑰μ μμ±μ λΈλΌμ°μ μ½μμμ νΈλ¦¬ νμμΌλ‘ 보μ¬μ£Όλ λλ²κΉ λꡬμ λλ€.
typeofλ λ°μ΄ν° νμ μ νμΈνλ κ°λ¨ν λꡬλ‘, console.dirμ κ°μ²΄ λ΄λΆλ₯Ό κΉμ΄ λΆμν λ μ μ©ν λꡬλΌκ³ μκ°νμλ©΄ λ©λλ€.
κ°μ²΄λ ν¨μμ λ΄λΆ ꡬ쑰μ μμ±μ΄ λμΌ?
κ°μ²΄λ ν¨μμ λ΄λΆ ꡬ쑰μ μμ±μ μ΄ν΄νλ κ²μ μλ°μ€ν¬λ¦½νΈμμ λ§€μ° μ€μν κ°λ μ λλ€. μ΄ μ©μ΄λ€μ΄ 무μμ μλ―Ένλμ§ μ€λͺ ν΄λ릴κ²μ!
1. κ°μ²΄μ λ΄λΆ ꡬ쑰μ μμ±
μλ°μ€ν¬λ¦½νΈμμ **κ°μ²΄(Object)**λ ν€(Key)-κ°(Value) μμΌλ‘ μ΄λ£¨μ΄μ§ λ°μ΄ν° ꡬ쑰μ λλ€. μ΄λ ν€λ₯Ό **μμ±(Property)**λΌκ³ λΆλ₯΄κ³ , κ·Έ μμ±μ **κ°(Value)**μ κ°μ§λλ€. κ°μ²΄μ λ΄λΆ ꡬ쑰λ λ°λ‘ μ΄ μμ±λ€κ³Ό κ·Έ κ°λ€μ΄ μ΄λ»κ² ꡬμ±λμ΄ μλμ§λ₯Ό μλ―Έν©λλ€.
μμ: κ°μ²΄
let person = {
name: "John", // μμ± 'name'κ³Ό κ·Έ κ° 'John'
age: 30, // μμ± 'age'μ κ·Έ κ° 30
greet: function() { // μμ± 'greet'κ³Ό κ·Έ κ°μΌλ‘ ν¨μκ° λ€μ΄μμ
console.log("Hello!");
}
};
μ μ½λμμ person κ°μ²΄μ λ΄λΆ ꡬ쑰λ λ€μκ³Ό κ°μ μμ±λ€λ‘ ꡬμ±λμ΄ μμ΅λλ€:
• name: “John”μ΄λΌλ κ°μ κ°μ§ μμ±
• age: 30μ΄λΌλ κ°μ κ°μ§ μμ±
• greet: ν¨μλ₯Ό κ°μΌλ‘ κ°μ§ μμ±
μ΄ μμ±(νλ‘νΌν°)λ€μ κ°μ²΄μ λ΄λΆμμ κ΄λ¦¬νλ λ°μ΄ν°μ λλ€. κ°μ²΄μ λ΄λΆ ꡬ쑰λ κ°μ²΄κ° μ΄λ€ μμ±κ³Ό λ©μλλ₯Ό κ°μ§κ³ μλμ§, κ·Έ μμ±μ κ°μ΄ 무μμΈμ§λ‘ ꡬμ±λ©λλ€.
console.dir(person)μ μ¬μ©νλ©΄:
console.dir(person);
μ΄ λͺ λ Ήμ μ€ννλ©΄ λΈλΌμ°μ μ½μμμ κ°μ²΄μ λ΄λΆ κ΅¬μ‘°κ° νΈλ¦¬ ννλ‘ νμλ©λλ€. μ΄λ name, age, greet λ±μ μμ±μ΄ κ°κ°μ κ°μ κ°μ§κ³ μλμ§ νμΈν μ μμ΅λλ€.
2. ν¨μμ λ΄λΆ ꡬ쑰μ μμ±
ν¨μλ μλ°μ€ν¬λ¦½νΈμμ κ°μ²΄λ‘ μ·¨κΈλκΈ° λλ¬Έμ, ν¨μ μ체λ μμ±μ κ°μ§ μ μμ΅λλ€. μ¦, ν¨μλ μ½λ λΈλ‘μΌ λΏλ§ μλλΌ μ¬λ¬ νλ‘νΌν°λ₯Ό κ°μ§ 볡μ‘ν ꡬ쑰λ₯Ό κ°μ§κ³ μμ΅λλ€. ν¨μμ λ΄λΆ ꡬ쑰λ κ·Έ ν¨μ κ°μ²΄κ° κ°μ§κ³ μλ νΉμ±λ€μ μλ―Έν©λλ€.
μμ: ν¨μ
function sayHello() {
console.log("Hello, world!");
}
μ΄ ν¨μμ λ΄λΆ ꡬ쑰μλ μ¬λ¬ κ°μ§ μμ±μ΄ μμ΅λλ€:
• name: ν¨μμ μ΄λ¦μ λνλ΄λ μμ± (μ΄ κ²½μ° "sayHello")
• length: ν¨μκ° λ°μ μ μλ λ§€κ°λ³μμ μλ₯Ό λνλ΄λ μμ± (μ΄ κ²½μ° 0)
• prototype: ν΄λΉ ν¨μκ° μμ±μ ν¨μλ‘ μ¬μ©λ λ, μλ‘μ΄ κ°μ²΄μ μ°κ²°λλ μμ±μ λλ€.
console.dir(sayHello)μ μ¬μ©νλ©΄:
console.dir(sayHello);
μ΄ λͺ λ Ήμ μ€ννλ©΄ λΈλΌμ°μ μ½μμμ ν¨μ κ°μ²΄μ λ΄λΆ κ΅¬μ‘°κ° νμλ©λλ€. μ¬κΈ°μ name, length, prototype λ±μ μμ±μ νμΈν μ μκ³ , ν¨μκ° λ¨μν μ½λ λΈλ‘μ΄ μλλΌ μ¬λ¬ μμ±μ κ°μ§ κ°μ²΄λΌλ μ μ μ μ μμ΅λλ€.
ν¨μμ μ£Όμ μμ±:
1. name: ν¨μμ μ΄λ¦μ λνλ λλ€.
console.log(sayHello.name); // "sayHello"
2. length: ν¨μκ° λ°μ μ μλ λ§€κ°λ³μμ μλ₯Ό λνλ λλ€.
console.log(sayHello.length); // 0 (sayHelloλ λ§€κ°λ³μκ° μμ)
3. prototype: λͺ¨λ ν¨μλ prototypeμ΄λΌλ μμ±μ κ°μ§λλ€. μ΄λ ν΄λΉ ν¨μκ° μμ±μ ν¨μλ‘ μ¬μ©λ λ μ€μν μν μ ν©λλ€. prototype μμ±μ μλ‘μ΄ κ°μ²΄λ₯Ό λ§λ€ λ κ·Έ κ°μ²΄κ° μμλ°μ μμ±μ΄λ λ©μλλ₯Ό μ μνλ κ³³μ λλ€.
μμ½: κ°μ²΄λ ν¨μμ λ΄λΆ ꡬ쑰μ μμ±
• κ°μ²΄μ λ΄λΆ ꡬ쑰λ ν€-κ° μμΌλ‘ μ΄λ£¨μ΄μ§ μμ±λ€μ΄ μ΄λ»κ² ꡬμ±λμ΄ μλμ§λ₯Ό μλ―Έν©λλ€. κ° μμ±μ κ°μ²΄κ° κ°μ§κ³ μλ λ°μ΄ν° λλ **λ©μλ(ν¨μ)**μ λλ€.
• ν¨μμ λ΄λΆ ꡬ쑰λ λ¨μν μ½λ λΈλ‘ μ΄μμ κ²μ κ°μ§κ³ μμ΅λλ€. ν¨μλ μλ°μ€ν¬λ¦½νΈμμ κ°μ²΄λ‘ μ·¨κΈλκΈ° λλ¬Έμ μ¬λ¬ μμ±(name, length, prototype λ±)μ κ°μ§ μ μμΌλ©°, μ΄λ₯Ό λ΄λΆ ꡬ쑰λΌκ³ ν©λλ€.
console.dir()λ‘ νμΈν μ μλ λ΄λΆ ꡬ쑰:
• κ°μ²΄λ ν¨μμ λͺ¨λ μμ±κ³Ό κ°λ€μ νΈλ¦¬ κ΅¬μ‘°λ‘ λ³΄μ¬μ€λλ€.
• κ°μ²΄κ° μ΄λ»κ² ꡬμ±λμ΄ μλμ§, ν¨μκ° μ΄λ€ νΉμ±μ κ°μ§κ³ μλμ§ μκ°μ μΌλ‘ νμν μ μμ΅λλ€.
μ΄μ κ°μ²΄λ ν¨μμ λ΄λΆ ꡬ쑰μ μμ±μ΄ 무μμ μλ―Ένλμ§ λ μ μ΄ν΄νμ ¨μ κ±°μμ!