자바스크립트에서 호이스팅

자바스크립트에서 호이스팅된 객체는 자바스크립트가 그것에 대해 불평하는 오류를 던지지 않고 코드에서 선언하기 전에 액세스할 수 있는 객체입니다.
변수, 함수 및 클래스와 같은 일부 항목을 호이스트할 수 있습니다.

var로 선언된 변수



코드에서 변수가 선언되기 전에 var로 선언된 변수에 액세스하려고 하면 값이 정의되지 않습니다.

console.log(name); //undefined
var name = "John";


다시 javascript는 오류를 던지는 대신 해당 변수를 정의되지 않은 것으로 설정합니다.

let 및 const로 선언된 변수



이러한 변수는 호이스팅되지 않으며 선언 전에 액세스하면 오류가 발생합니다.

console.log(name); //reference error: name is not defined
const name = "John";


기능



함수도 호이스팅되며 그 값은 함수 자체가 될 것이므로 선언 전에 완벽하게 사용할 수 있습니다.

sayHi(); //Hi
function sayHi() {
   console.log("Hi");
}


그러나 화살표 함수는 var로 선언해도 호이스팅되지 않습니다.

sayHi(); // sayHi is not a function
var sayHi = () => console.log("Hi");


ES6 클래스



클래스는 호이스팅되지 않으며 선언 전에 액세스하면 오류가 발생합니다.

const person = new Person(); //cannot access 'Person' before initialization

class Person {
  constructor() {}
}


요약



var 변수: 기본적으로 호이스팅되고 정의되지 않음
const 변수: 게양되지 않음
기능: 게양 및 사용 가능
화살표 기능: 게양되지 않음
클래스: 게양되지 않음

좋은 웹페이지 즐겨찾기