Computer >> 컴퓨터 >  >> 프로그래밍 >> MongoDB

자바스크립트에서 undefined 값에 숫자를 더하면 어떻게 될까? NaN 결과 완벽 이해

자바스크립트에서 undefined 값에 숫자를 더하면 어떤 일이 일어날까요? 정답은 NaN입니다. NaN은 "Not a Number"의 약자로, 말 그대로 '숫자가 아님'을 의미하는 특수한 값입니다. 유효하지 않은 산술 연산을 수행했을 때 자바스크립트가 반환하는 결과이며, 숫자 타입에 속하지만 실제 숫자로는 표현할 수 없는 상태를 나타냅니다.

사례 1: undefined를 직접 더하는 경우

숫자 리터럴에 undefined를 직접 더하면 즉시 NaN이 반환됩니다.

var anyVar = 10 + undefined;
print(anyVar); // 결과: NaN

사례 2: 선언만 되고 초기화되지 않은 변수를 더하는 경우

변수를 선언만 하고 값을 할당하지 않으면 해당 변수는 자동으로 undefined가 됩니다. 따라서 이 변수를 숫자와 더해도 마찬가지로 NaN이 반환됩니다.

var anyVar1 = 10;
var anyVar2; // 값이 할당되지 않아 undefined
var result = anyVar1 + anyVar2;
print(result); // 결과: NaN

실제 실행 예제

위에서 살펴본 두 가지 사례를 콘솔에서 직접 실행해 보겠습니다.

사례 1 실행 결과

undefined를 직접 더하는 코드는 다음과 같습니다.

> var result = 10 + undefined;
> print(result);

실행하면 다음과 같은 출력을 확인할 수 있습니다.

NaN

사례 2 실행 결과

초기화되지 않은 변수를 사용하는 경우도 살펴보겠습니다.

> var value;
> var value1 = 10;
> var result = value1 + value
> result

역시 동일하게 NaN이 출력됩니다.

NaN

왜 NaN이 반환될까?

자바스크립트의 덧셈 연산자(+)는 피연산자 중 하나라도 undefined 또는 null 같은 유효한 숫자로 변환될 수 없는 값이면 연산을 수행할 수 없습니다. undefined를 숫자로 변환하려고 시도하면 NaN이 되고, 숫자와 NaN을 더하면 결과 역시 NaN이 되기 때문입니다. 참고로 null은 숫자로 변환 시 0이 되어 10 + null은 10을 반환한다는 점도 함께 기억해 두면 유용합니다.