JavaScript 문자열과 숫자


문자열과 숫자 (string & number)

문자와 숫자는 중요해요. 당장 브라우저 탭을 열고 아무 웹사이트나 들어가 보면 대부분의 내용이 문자와 숫자로 이루어져 있죠. 이러한 숫자나 문자열(String) 같은 것들은 프로그래밍에서 자료형(Data type)이라 부르고, 숫자와 문자 데이터 타입은 가장 기초가 되는 자료형이에요.

문자열(String)은 문자들의 모음이라는 뜻이에요. 보통 문자 하나하나는 다른 프로그래밍 언어에서는 Character 라고 부르는 경우가 있고, 이러한 Character들이 길게 늘어선 형태를 String, 혹은 문자열이라고 불러요.

자바스크립트에서 숫자는 정수, 실수 구분없이 모두 number라는 데이터 타입을 사용해요.

자바스크립트에서 문자열(string)은 따옴표 혹은 작은 따옴표의 쌍으로 문장을 둘러싸서 표현해요.

하지만 만약 숫자를 따옴표로 둘러 싸면 어떻게 될까요? 따옴표로 둘러싸면 String이 되요. '42'는 숫자 42가 아니라 4와 2라는 문자의 연속일 뿐인거죠.

// string
"Hello World"

// number
42
3.14195

// string
'42'

JavaScript 숫자 표현

자바스크립트에서는 10진수와 16진수를 표현할 수 있어요. 16진수(Hexadecimal)는 숫자앞에 0x를 붙여서 표현할 수 있어요.

// 10진수
> 123
123

// 16진수
> 0x123
291

지수나 무한대와 같은 숫자도 표현할 수 있어요.

// 실수
> 3.14
3.14
> .14
0.14

// 지수
> 1.1e5
110000
> 1.1e-5
0.000011

무한대의 숫자를 의미하는 Infinity와 숫자가 아님을 나타내는 Not a Number라는 표현도 있어요.

// 양의 무한대
Infinity

// 음의 무한대
-Infinity

// 숫자가 아님
NaN

숫자의 사칙연산

숫자는 사칙연산을 할 수 있어요. 너무 쉬우니까 그냥 REPL을 실행하고 한번 해봐요.

// 더하기
> 1 + 1
2
> 1.1 + 2.2
3.3000000000000003

// 빼기
> 2 - 3
-1

// 곱하기
> 2 * 3
6
> 2.1 * 3.1
6.510000000000001

// 나누기
> 3 / 4
0.75

중간에 이상한 결과가 끼어있죠. 이건 자바스크립트가 모든 숫자를 IEEE 754 표준이라는 방식으로 구현해서 그런건데요. 우선은 이러한 문제점이 있다는 것만 알아두고 넘어가요. 복잡한 숫자 계산을 할때는 다른 방법이 있거든요.

JavaScript 문자열

자바스크립트에서 문자열(string)은 따옴표 혹은 작은 따옴표의 쌍으로 문장을 둘러싸서 표현한다고 했죠. 만약 문자열 중간에 작은 따옴표나 쌍따옴표를 쓸 경우에는 주의가 필요해요.

// 'It's error'

위에서 처럼 작은 따옴표로 둘러싼 문자열 내부에 작은 따옴표를 사용하면 에러가 발생해요. 만약 이런 경우 해결책은 문자열을 큰따옴표로 둘러싸면 되요.

아니면 문자열 이스케이프라는 것을 해주는데요, \를 이스케이프 하려고 하는 문자앞에 붙이게 되면 그 문자는 문자열을 구분하는 용도의 구분자가 아니라, 단순히 문자로만 인식되게 되요.

// 다른 따옴표로 둘러싸기
"It's not error"

// 문자열 이스케이프하기
'It\'s not error'

문자열 더하기

문자열도 더할 수 있어요. 예를 들어 "hello" 라는 문자열과 world 라는 문자열을 더하면 아래처럼 나오죠.

> "hello" + "world"
'helloworld'