본문 바로가기

FE26

[JavaScript] 함수 선언문과 함수 표현식 함수 선언문과 함수 표현식 함수는 두 가지 방식으로 정의할 수 있다. 1. 함수 선언문 function add(x, y){ return x + y; } 2. 함수 표현식 const add = function(x, y){ return x + y; } ES6의 화살표 함수도 이에 해당한다. const minus = (x, y) => { return x - y; } 함수 선언문과 함수 표현식의 차이는 무엇일까? 함수 생성 시점이 다르다. 함수 선언문은 런타임 이전에 먼저 실행되어 함수 객체로 초기화되어 함수 선언문 이전에 함수를 참조할 수 있다. 즉, 함수 호이스팅이 발생한다. 하지만 const로 실행된 함수 표현식은 함수 호이스팅이 아닌 변수 호이스팅이 발생한다. 따라서 undefined 값으로 초기화되고,.. 2022. 10. 23.
[JavaScript] 변수 선언과 호이스팅 변수 선언과 변수 호이스팅 # 변수 선언 변수 선언이란? 변수를 생성하는 것이다. 메모리 공간을 확보하고, 변수의 이름과와 메모리 공간의 주소를 연결하여 값을 저장할 수 있게 준비해주는 것을 의미한다. let name; name이라는 변수를 선언했다. 그렇다면 메모리는 값을 저장하기 위한 공간을 확보하고, 그 공간을 name이라는 변수가 사용하도록 해줄 것이다. 단, 아직 아무런 값이 할당되지 않았다. 그럼 메모리 공간이 비어있는 것일까? 그렇지 않다. 값을 할당하지 않았다면 메모리 공간은 자바스크립트의 엔진에 의해 undefined라는 값이 할당된다. 즉, 변수 선언의 과정은 다음과 같다. 1. 선언 : 변수의 이름을 선언해서 자바스크립트 엔진에 변수의 존재를 알린다. 2. 초기화 : 변수에 값을 저장.. 2022. 10. 12.