자바스크립트에는 NaN이라는 특이한 형태의 값이 있다.
var num = 1 * 'String';
console.log(num); // NaN
숫자와 문자열을 곱하면 에러가 발생해야할 것 같지만 자바스크립트에서는 NaN이라는 값을 반환한다.
NaN은 Not-a-Number 라는 뜻으로 이름 그대로 숫자가 아니라는 뜻이다.
즉, 숫자와 숫자가 아닌 값을 곱했기 때문에 숫자가 아닌 이상한 값이 할당된 것이다.
이를 자바스크립트에서는 NaN이라는 값으로 표현한다.
해당 값이 NaN인지 구분하기 위해 자바스크립트에서는 isNaN() 이라는 함수를 제공하고 있다.
var num = 1 * 'String';
console.log(isNaN(num)); // true
재미있는 점은 자바스크립트에서 문자열이 숫자의 형태를 하고 있다면
문자열은 자동으로 숫자로 변환되어 숫자와의 연산이 수행된다.
var num = 2 * '3';
console.log(num); // 6
하지만 '+'의 연산의 경우 숫자로서의 연산보다 문자열 간의 연결 연산이 우선으로 수행되기 때문에
이 때는 숫자가 문자열로 변환되어 문자열 결합이 이루어진다.
console.log(3 + '3'); // 33
console.log(3 - '3'); // 0
console.log(3 * '3'); // 9
console.log(3 / '3'); // 1
console.log(3 % '3'); // 0
이 때문에 숫자 형태의 문자열을 더하기 연산하기 위해서는 먼저 문자열을 숫자로 변환해주어야한다.
자바스크립트에서는 parseInt() 함수를 사용해 문자열을 숫자로 변환할 수 있다.
console.log(3 + '3'); // 33
console.log(3 + parseInt('3')); // 6
'JavaScript > JavaScript' 카테고리의 다른 글
[Javascript] 배열과 filter, map, join, forEach (0) | 2023.01.02 |
---|---|
[Javascript] 데이터 타입이 필요한 이유 (0) | 2023.01.01 |
[Javascript] 변수 호이스팅 (Variable Hoisting) (0) | 2023.01.01 |
[Javascript] 자바스크립트 정규식 (글자수만 제한하기) (0) | 2022.12.30 |
[Javascript] submit 전에 입력 값 길이 검사하기 (0) | 2022.12.30 |