JavaScript에는 대표적인 2가지 문법 카테고리가 존재합니다.
그것이 오늘 공부할, Expression과 Statement입니다.
// 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는 특정 Action을 수행하는 코드를 의미합니다.
Statement는 Expression처럼 값을 도출할 수도 있으며, 값을 도출하지 않을 수도 있습니다.
// 조건을 파악하는 if문 자체는 value를 return하지 않음
const what = if(true) {}; // Error
console.log(if(true) {}); // Error
// Line 1 : 존재하지 않는 add()를 사용하려 함
// JS엔진은 코드 실행 전, 모든 Declaration을 호이스팅함
// 이는 실행 가능한 코드를 형상화하고 구분하는 과정을 거치는 것임
const sum = add(1,2);
function add(a,b){
return a+b;
}
// Error 없이 정상적으로, add한 결과를 출력함
console.log(sum);
// Line 1 : 존재하지 않는 add()를 사용하려 함
// add(1,2)는 아직 초기화되지 않았음.
// Error 발생 : Reference Error(선언만 되어있을 때 발생하는 Error)
const sum = add(1,2);
const add = (a,b) => {
return a+b;
}