자바스크립트 언어의 특징 중 하나는 자바스크립트는 string과 number의 데이터 타입을 신경쓰지 않는다는 것이다.
예제를 들어 살펴보자.
let a = '5' + 5;
console.log(typeof a);
위에 예제를 보면 '5'는 string 5는 number이다. data type이 다른데도 결과값은 에러가 없이 string
으로 a의 값은 55가 나온다.
예제를 더 살펴보자.
console.log('200'+'10'); //'20010'
console.log('200'-'10'); //190
console.log(200+'11'); //'20011'
console.log('200'+11); //'20011'
console.log('200'-'안녕'); //NaN
console.log("200"-"안녕"); // NaN
console.log(2019+"2000"); //'20192020'
console.log(2019-"2000"); // 19
컴퓨터가 +
의 양쪽을 보고, 하나라도 String이 있으면 문자열로서 합쳐주고-
라면, String의 마이너스는 존재 하지 않으므로 양쪽의 값을 모두 숫자로 변환해서 계산해 준다는 것을 알 수 있다.
var birthYearInput = "2000";
console.log(typeof birthYearInput); // string
var numberBirthYear = Number(birthYearInput); // number()로 형변환
console.log(typeof numberBirthYear); // number가 되었다.
parseInt("1.901"); //다만 소수점은 나오지 않는다. 값은 숫자 1로 나온다.
parseFloat("1.901");
var numberAsNumber = "1234";
var numberAsString = numberAsNumber - 0; // -0을 해주면 숫자형으로 변한다.
var numberAsNumber = 1234;
var numberAsString = numberAsNumber.toString(); //toString으로 해주니까 문자열로 변한다.
console.log(numberAsNumber, typeof numberAsNumber); // 1234 'number'
console.log(numberAsString, typeof numberAsString); //'1234' 'string'
var numberAsNumber = 1234;
var numberAsString = 1234 + "";
console.log(numberAsNumber, typeof numberAsNumber); //숫자
console.log(numberAsString, typeof numberAsString); // 문자열로 변환됨