- Use the JavaScript Console to Check the Value of a Variable console.log() 는 가장 유용한 디버그 도구다. 변수 등이 중간에 값이 어떻게 변하는지 보여준다. 무엇이 잘못되었는지 금방 찾을 수 있게 해준다. 적극적으로 활용하자. 또한 firefox 와 chrome 은 강력한 개발자 툴을 제공한다. 가능하면 웹은 이들로 쓰자.
- Understanding the Differences between the freeCodeCamp and Browser Console console.log() 이후 console.clear() 를 사용하면 console 을 깨끗이 지워준다.
- Use typeof to Check the Type of a Variable 테이터 형식을 확인하는 일은 오류를 막는데 중요하다. 예를 들어서 계산을 할 때 number 와 string 을 혼용하면 error 를 만나게 된다. 특히 외부 JSON 파일을 불러올 때 주의해야 한다. 자바스크립트는 총 7가지의 바꿀 없는 데이터 타입과 한 가지의 바꿀 수 있는 데이터 타입이 있다. 바꿀 수 없는 데이터 타입은 number, BigInt, string, boolean, undefiend, null, symbol 이다. 바꿀 수 있는 데이터 타입은 object 다. array 도 object 에 포함된다. 데이터 타입을 확인하려면 다음과 같이 한다.
let a = 7;
let b = "3";
let sumAB = a + b;
console.log(typeof a);
console.log(typeof b);
- Catch Misspelled Variable and Function Names 자바스크립트는 대소문자를 구분한다. 그래서 변수명을 사용할 때 잘못된 스펠링을 사용하여 프로그래밍이 제대로 안 돌아가는 경우가 있다. 맞춤법 오류를 항상 주의하자. 구문 오류가 발생할 가능성은 항상 높다.
- Catch Unclosed Parentheses, Brackets, Braces and Quotes 구문 오류로 흔히 나타나는 다른 유형은 괄호다. 중괄호 대괄호 소괄호를 시작하고 끝을 내지 않는 경우가 자주 발생한다. 이런 유형의 오류를 피하는 한 가지 좋은 방법은 괄호를 시작할 때 끝 괄호를 미리 입력하고 시작 하는 것이다. 다행히 최근의 IDE 는 괄호를 입력하면 자동으로 끝 괄호를 입력해 준다.
- Catch Mixed Usage of Single and Double Quotes 따옴표 사용을 잘못하여 구문 오류가 나는 경우도 적지 않다. 자바스크립트는 작은 따옴표와 쌍 따옴표를 모두 허용하기 때문에 둘을 모두 사용하는 것도 좋다.
let a = "나는 오늘 '앞으로 100년' 을 읽었다.";
let b = "나는 어제 "\이산수학\" 을 공부했다.";
let c = "I've had a perfectly wonderful evening, but this wasn't it."
- Catch Use of Assignment Operator Instead of Equality Operator 변수에 값을 배정하는 기호는 ‘=’ 인데, 우리가 평소에 사용하는 용도와 다르다. true, false 를 계산하는 기호는 ‘==’, ‘===’ 이다. if, else if, else 등을 사용할 때 실수하기 쉽다.
- **Catch Missing Open and Closing Parenthesis After a Function Call** 함수를 불러올 때 발생할 수 있는 오류로 끝에 ()를 빼먹는 경우가 있다. 특히 argument 가 없을 때 그러한 실수가 발생할 수 있다. 주의하자.
- Catch Arguments Passed in the Wrong Order When Calling a Function 함수를 불러올 때 인수를 넣는 순서가 있다면 틀리지 않게 주의해야 한다.
function sub(arg1, arg2){
return arg1-arg2
};
console.log(sub(5, 3));
- Catch Off By One Errors When Using Indexing 배열이나 오브젝트에서 값을 읽어오는 등 작업을 할 때 index 를 써야 한다. 자바스크립트는 배열의 시작이 0이다. 대부분의 컴퓨터 언어도 동일하다. 또는 끝 값을 잘못 잡아서 오류가 날 수도 있다. 예를 들어 아래의 예제는 첫 시작과 끝 값이 모두 틀렸다. 시작은 0이어야 하고 끝은 < 로 표시해야 한다.
function countToFive() {
let firstFive = "12345";
let len = firstFive.length;
for (let i = 1; i <= len; i++) {
console.log(firstFive[i]);
}
}
countToFive();
- Use Caution When Reinitializing Variables Inside a Loop 함수를 만들 때 함수 내부에서 어떤 변수를 초기화 해야 할 때가 있다. 까다로운 문제. 아래 예제에서 변수 row 를 여러차례 초기화 하고 있다. 초기화 하는 까닭은 [[0,0], [0,0], [0,0]] 과 유사한 모습으로 정의하기 위해서다. 만약 초기화가 없다면 [0,0,0,0,0,0] 과 같이 데이터 구조가 짜인다.
function zeroArray(m, n) {
let newArray = [];
for (let i = 0; i < m; i++) {
let row = [];
for (let j = 0; j < n; j++) {
row.push(0);
}
newArray.push(row);
}
return newArray;
}
let matrix = zeroArray(3, 2);
console.log(matrix);
- Prevent Infinite Loops with a Valid Terminal Condition 무한 루프는 반드시 피해야 할 두려운 오류에 해당한다. 프로그래머의 작업은 반복문이 사용될 때 반드시 터미널 루프를 제대로 작성해야 한다. 잘못작성된 터미널 루프는 웹을 못쓰게 한다.