Code/JavaScript

Javascript 타입(type)에 따른 작동 방식의 차이 // String(), Number()

반응형

타입에 대한 이해

자바스크립트의 모든 값(value)는 각자 타입을 가지고 있다. 평소에 우리는 무의식적으로 숫자와 문자를 구분하지 않고 이야기하지만, 우리는 이를 무의식적으로 구분할 수 있을 만큼 똑똑합니다. 하지만 컴퓨터는 상황과 문맥을 이해하는 능력이 없습니다.

 

컴퓨터가 명확하게 표현하기 위해서는 모든 값에 타입을 정해주고, 그에 맞게 행동하도록 규정을 정해줘야 했습니다.

let person = '혜선';
let date = '일요일';
let quantity = 1;
letsGoGetFood('혜선', '일요일', 1);

문자열은 ', " 따옴표로 둘러 쌓아 표시해주고, 숫자열은 그대로 숫자를 입력하여 구분할 수 있습니다.

 

타입에 따른 코드 작동 방식의 차이

let word = 'hello' + ' ' + 'world';  // 'hello world'
let count = 32 + 1;                  // 33

string과 string을 더하면, 문자열과 문자열이 붙은 형태로 표현된다.

number와 number을 더한다면, 덧셈 연산이 표현된다.

 

웹 브라우저에 적혀있는 정보를 가져오면 보통 string의 형태로 받아오게 되어 숫자로 세고 싶은 정보도 string으로 인식하기 때문에, 정상적인 숫자를 위한 연산을 수행할 수 없다.

 

이를 해결하기 위해서는 타입을 변경하는 방법이 있다.

 

String()

let age = 23;

String(age) // '23' 

string()을 통해 변수 age의 값, 숫자형 23을 문자형 '23'으로 변환했다.

Number()

let age = '23'

Number(age) // 23 

Number()을 통해 변수 age의 값, 문자형 '23'을 숫자형 23으로 변환했다.

이와 같이 숫자형과 문자형을 변환할 수 있다.

let name = 'deemmun'

Number(name) // NaN

하지만, 수로 변환할 수 없는 경우 수가 아님을 나타내는 특수한 값 NaN (Not-a-Number)이 나온다.

 

 

 

string과 number 타입 이외에도 각 타입 별 코드의 작동이 다를 수 있다는 점을 유의해야 한다.

반응형