개발

js record와 호이스팅

explosion149 2024. 11. 6.

 

JavaScript에서 "record"라는 용어는 일반적으로 사용되지 않지만, 
객체를 의미하는 경우가 많습니다. 
JavaScript의 객체는 키-값 쌍으로 데이터를 저장하는 구조입니다.

 

 

 

 

JavaScript에서 객체는 여러 값을 저장할 수 있는 데이터 구조입니다. 객체는 중괄호 {}로 정의되며, 속성(프로퍼티)과 메서드를 가질 수 있습니다.

 

const person = {
    name: "Alice",
    age: 30,
    greet: function() {
        console.log("Hello, " + this.name);
    }
};

console.log(person.name); // "Alice"
person.greet(); // "Hello, Alice"

 

 

 

호이스팅은 JavaScript의 변수와 함수 선언이 해당 코드 블록의 최상단으로 끌어올려지는 현상을 말합니다. 이는 변수와 함수가 선언되기 전에 참조될 수 있음을 의미합니다.

 

 

 

변수 호이스팅: 변수는 선언만 호이스팅되며, 초기화는 원래 위치에서 수행됩니다. 

console.log(x); // undefined
var x = 5;
console.log(x); // 5

위의 코드에서 x는 선언이 호이스팅되어 undefined로 초기화됩니다. 실제 값 5는 두 번째 console.log에서 출력됩니다.

 

함수 호이스팅: 함수 선언은 전체가 호이스팅됩니다. 

즉, 함수가 선언되기 전에 호출할 수 있습니다.

 

greet(); // "Hello!"

function greet() {
    console.log("Hello!");
}

위의 예시에서 greet 함수는 호출되기 전에 정의되었지만, 

호이스팅 덕분에 정상적으로 호출됩니다.

 

var와 달리 let과 const는 호이스팅되지만, 

초기화가 이루어지기 전까지는 사용할 수 없습니다. 

이를 "일시적 사각지대(Temporal Dead Zone)"라고 합니다.

 

console.log(y); // ReferenceError: Cannot access 'y' before initialization
let y = 10;

객체(Record): JavaScript에서 데이터를 저장하는 구조로, 키-값 쌍으로 이루어져 있습니다.
호이스팅: 변수와 함수 선언이 최상단으로 끌어올려지는 현상으로, 

변수는 선언만 호이스팅되고, 함수는 전체가 호이스팅됩니다. 

let과 const는 호이스팅되지만, 초기화 전에는 사용할 수 없습니다.

 

 

'개발' 카테고리의 다른 글

js 상황에 따라 달라지는 this  (2) 2024.11.06
js outerEnvironmentReference  (0) 2024.11.06
js 실행 컨텍스트 와 콜 스택  (1) 2024.11.06
js null 과 undefined  (0) 2024.11.06
js 불변객체  (0) 2024.11.06

댓글

💲 추천 글