const x = 5;
const y = getAnswer();

위의 두 코드라인은 컴퓨터과학에서는 상황에 따라 유사한 코드일수도 아닐수도 있다.

실제로 어떤일이 일어나는지에 대해서 생각하면 두 라인은 전혀 유사하지않다.

하나는, 값을 할당하는것이고 또하나는 외부 함수를 호출하는것이다.

다른 관점에서 생각해보자.

뛰는것과 비행기를 타는것은 매우 다른 행위이지만 특정 레벨에서 보면 이 두개는 비슷한 행위이다.

둘다 이곳에서 저곳까지 가는 행위이다.

위의 두 코드도 어떤 레벨에서 보면 유사한코드이다. 값을 할당하고 있기 때문이다.

expressionvalue로 귀결되는 코드 조각이다.

const x = 5;

나는'5'가 이미 이라는것을 알고 있다. 근데 인터프리터의 입장에서 5는 expression이다. 그리고 이 expressionvalue가 된다.

또 다른 expression은 2+3이있다. 2+3과 5는 같은 value로 귀결되는 expression이다.

getAnswer();이라는 함수는 value로 귀결되기 때문에 expression이다.

함수 호출의 결과가 값이 되었기 떄문에 getAnswer();라는 문장은 statement가 아니라 expression이다.

자바스크립트는 expression과 statement를 다르게 취급한다.