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 |
댓글