코드 순서의 (비)중요성
app.js
const defaultResult = 0;
function add(num1, num2) {
const result = num1 + num2;
alert('The result is ' + result);
return result;
}
currentResult = add(1, 2);
let calculationDescription = `( ${defaultResult} + 10) * 3) / 2 - 1`;
outputResult(currentResult, calculationDescription);
let currentResult = defaultResult;
- 만약에 이런식으로 코드를 정의하게 된다면, 코드가 꺠지게 된다.
- console을 보게 되면, currentResult에 엑세스할 수 없다는 오류가 뜨게 된다.
- 사전정의 없이, 변수에 값을 할당하려고 해서 오류가 발생한 것이다.
- 즉, JavaScript에서
let
이나 const
키워드를 사용할 때는, 사용하기 전에 먼저 선언을 해야한다.
- 값은 재할당할 수 있지만,
let
과 const
는 한 번만 선언할 수 있다.
app.js
const defaultResult = 0;
let currentResult = defaultResult;
currentResult = add(1, 2);
let calculationDescription = `( ${defaultResult} + 10) * 3) / 2 - 1`;
outputResult(currentResult, calculationDescription);
function add(num1, num2) {
const result = num1 + num2;
alert('The result is ' + result);
return result;
}
- 하지만, 함수의 경우에는 변수와 다르게, 맨 하단으로 옮겨도 상관이 없다.
- 정의하기 전에 호출하는 것이라 생각하면 된다.
- JavaScript가 Script를 실행하기 전에 자동으로 모든 함수를 등록부터 하는 특별한 행동 방식을 갖추기 때문이다.
- 전체 Script를 로드할 때, 구문을 분석하되 이를 바로 실행하는 것이 아니라 위에서부터 아래로 읽기를 하는데, 이 떄, 파일 내에서 함수를 찾게 되면 함수를 자동으로 맨 위로 끌고 가서 인식을 한다고 표현할 수 있다.
- 중요한 것은 일관된 코드 스타일을 사용해야한다.
- 중간에 코드를 쓰는 것이 그나마 효율적인 방식이다.