const x = 5;
const y = getAnswer();
위의 두 코드라인은 컴퓨터과학에서는 상황에 따라 유사한 코드일수도 아닐수도 있다.
실제로 어떤일이 일어나는지에 대해서 생각하면 두 라인은 전혀 유사하지않다.
하나는, 값을 할당하는것이고 또하나는 외부 함수를 호출하는것이다.
다른 관점에서 생각해보자.
뛰는것과 비행기를 타는것은 매우 다른 행위이지만 특정 레벨에서 보면 이 두개는 비슷한 행위이다.
둘다 이곳에서 저곳까지 가는 행위이다.
위의 두 코드도 어떤 레벨에서 보면 유사한코드이다. 값을 할당하고 있기 때문이다.
expression
은 value
로 귀결되는 코드 조각이다.
const x = 5;
나는'5'
가 이미 값
이라는것을 알고 있다. 근데 인터프리터의 입장에서 5는 expression
이다. 그리고 이 expression
이 value
가 된다.
또 다른 expression
은 2+3이있다. 2+3과 5는 같은 value
로 귀결되는 expression
이다.
getAnswer();
이라는 함수는 value
로 귀결되기 때문에 expression
이다.
함수 호출의 결과가 값이 되었기 떄문에 getAnswer();
라는 문장은 statement
가 아니라 expression
이다.
자바스크립트는 expression과 statement를 다르게 취급한다.