function func() {
console.log('hi');
};//함수 선언문
let func = function() {
console.log('hi');
};//함수 표현식
자바스크립트를 몇번 보신 분들이라면 위 두개의 모양을 많이 보셨을겁니다. 위 두개의 차이는 호이스팅의 차이입니다. 하지만 지금은 호이스팅에 관한 주제가 아니기 때문에 넘어가겠습니다.
첫번째 함수는 '선언'만 하고 아무것도 안했습니다.
두번째 함수는 'func'라는 변수에 '할당'을 했습니다. 즉 이 함수는 func라고 =라는 '할당 표현식' 으로 할당했습니다.
이처럼 문은 '이것이 이거다'라고 선언을 하고 값을 도출하진 않습니다.
식은 '이렇게 해라'라고 값을 도출합니다.
1 + 1
"asd"
func()//함수가 선언되었다고 예시
식은 '값(value)'을 반환합니다!
프로그래밍 언어는 '식'에서 또 다른 '값'을 생성합니다. 이러한 연산 과정을 평가(evaluation)이라고 합니다.
문을 통해 값을 반환하는건 문 안에 식이 들어가있기때문입니다.
function func() {something...};
if(true){something...};
const x = something...;
문은 무언가를 수행하도록 컴퓨터에게 명령을 내리는 코드 입니다.
우리가 많이 들었던 '반복문, 변수선언, 함수선언, 조건문...'등이 그것들입니다.
이것들 자체로는 '값(value)'을 반환 못합니다.
여기서 알 수 있는 점은 '값'을 얻고싶으면 '문'을 이용해 '식'을 조합하여 '값'을 도출해야합니다.
(햇갈린다...)