문법 · JS · beginner

오류 읽기: TypeError · undefined · 스택

콘솔 메시지를 단서로 파싱·인덱스·스코프 버그를 찾는 법.

배우기 · JavaScript 문법 · 12분 · 8/10 · javascript · 디버그

이 트랙 목차 (10)
  1. 1. 값·변수·타입: let, const, Number, String
  2. 2. 조건과 논리: if, else, &&, ||, 삼항
  3. 3. 반복: for, while, for...of, 배열 메서드
  4. 4. 함수: 선언, 화살표, 스코프, 순수 함수
  5. 5. 배열과 문자열 다루기
  6. 6. 객체·Map·Set
  7. 7. 비동기 맛보기 (문제 범위 밖이지만)
  8. 8. 오류 읽기: TypeError · undefined · 스택
  9. 9. 정규식 맛보기: test · match · replace
  10. 10. JSON 파싱 맛보기

채점 실패 vs 런타임 오류

자주 보는 메시지

메시지 감각의심
Cannot read properties of undefinedarr[i]·obj.x가 없음. 파싱·범위
is not a function변수에 함수가 아님. 이름 충돌
Unexpected token문법 깨짐. 괄호·따옴표
Maximum call stack무한 재귀

최소 디버그

function solve(input) {
  const lines = input.trim().split(/\n/);
  // console.log(JSON.stringify(lines));
  ...
}

로그는 채점 반환값에 넣지 마세요. 연습장에서만 확인합니다.

한 줄

> 스택의 맨 위 파일·줄이 출발점이다. undefined면 인덱스를 먼저 찍어라.

체크리스트

  1. 예외 메시지 첫 줄 복사
  2. undefined인 식 찾기 (arr, map.get, match 결과)
  3. 입력 trim/split 결과 길이 확인
  4. 고친 뒤 같은 실패 케이스만 다시 채점

참고 풀이를 보기 전에, 실패 실제값과 기대값을 한 줄로 적어 두면 학습이 남습니다.

자주 보는 메시지

메시지의미
Cannot read properties of undefined객체/배열이 없는데 프로퍼티 접근
is not a function함수가 아닌 값을 호출
Unexpected token괄호·따옴표·쉼표 문법

에디터 콘솔에서 스택의 첫 파일·줄만 보면 충분합니다. 라이브러리 깊은 줄은 나중에.

한 줄

> 예외 메시지 → 의심 식 → 입력 확인 → 같은 케이스만 재채점.

관련 짧은 원리

관련 문제