JavaScript에는 대표적인 2가지 문법 카테고리가 존재합니다.

그것이 오늘 공부할, Expression과 Statement입니다.

Expression(표현식)

// programmer가 아래처럼 1+1을 출력하는 코드를 작성함
console.log(1+1);

// JavaScript는 1+1이라는 Expression을 2라는 value로 대체함
// value 대체 후, console.log()를 아래처럼 변환하여 수행함
console.log(2);
function add(a,b){
	return a+b;
}

function sub(a,b){
	a-b;
}

// func add는 전달한 두 인자값을 더하여 return
// 따라서, add(5,6)은 Expression
console.log(add(5,6));

// func sub는 따로 return하는 구문이 없음
// 하지만, undefined를 return
console.log(sub(5,6));

Statement(문장)

Function Declaration(함수 선언문)

// Line 1 : 존재하지 않는 add()를 사용하려 함
// JS엔진은 코드 실행 전, 모든 Declaration을 호이스팅함
// 이는 실행 가능한 코드를 형상화하고 구분하는 과정을 거치는 것임
const sum = add(1,2);

function add(a,b){
	return a+b;
}

// Error 없이 정상적으로, add한 결과를 출력함
console.log(sum);

Function Expression(함수 표현식)

// Line 1 : 존재하지 않는 add()를 사용하려 함
// add(1,2)는 아직 초기화되지 않았음. 
// Error 발생 : Reference Error(선언만 되어있을 때 발생하는 Error)
const sum = add(1,2);

const add = (a,b) => {
	return a+b;
}

만약 Hoisting에 대한 자료가 필요하다면?

FrontendWeb