논리적 사고

JSON으로 바꾸면 undefined 항목은 어디로 갈까?

같은 값을 객체·배열·단독값에 넣어 변환하고, 누락·null·JSON 문자열 미생성을 비교합니다.

undefined를 객체에 넣으면 항목 생략, 배열에 넣으면 null, 단독으로 변환하면 JSON 문자열 미생성으로 갈리는 그림
undefined를 객체에 넣으면 항목 생략, 배열에 넣으면 null, 단독으로 변환하면 JSON 문자열 미생성으로 갈리는 그림
그림 크게 열기 ↗SVG 저장

그림에서 무엇을 볼까요?

undefined를 객체에 넣으면 항목 생략, 배열에 넣으면 null, 단독으로 변환하면 JSON 문자열 미생성으로 갈리는 그림

자바스크립트의 undefined(언디파인드, 정의되지 않은 값)는 JSON이 직접 표현할 수 있는 값이 아닙니다. JSON(제이슨)은 문자열로 자료를 교환하는 형식입니다. JSON.stringify는 자바스크립트 값을 이 형식의 문자열로 바꿉니다. 모든 입력을 모양 그대로 옮기는 복사 기능은 아닙니다.

이 활동은 값 하나를 세 위치에 넣습니다. 객체는 {value: 값}처럼 이름과 값을 짝지으며, 배열은 [값]처럼 순서 있는 칸에 값을 놓습니다. 마지막은 값만 단독으로 넘깁니다. 사용자 정의 변환 함수와 toJSON 메서드는 사용하지 않습니다. 구조를 고정하고 값만 바꾸어 차이를 비교합니다.

함께 확인할 점

값 undefined에서 객체·배열·단독값의 결과와 자료형을 비교합니다. null·NaN·Infinity를 차례로 선택하고 서로 구별되지 않는 출력을 찾습니다. 숫자 0과 문자열 "0"의 따옴표 차이를 확인하고 초기화합니다.

생각해 볼 질문

API에 보내는 항목 하나를 정해 ‘이름 없음’·‘null’·‘0’의 업무상 의미를 각각 확인할 질문을 만들어 보세요.

← 논리적 사고 그림 더 보기