[JavaScript] 자료형과 형 변환
자료형
- 변수의 종류를 뜻하며 원시 타입과 비 원시 타입으로 나뉨
- 원시 타입 자료형
- 숫자형
- Biglnt형
- 문자형
- Boolean형
- Null
- Undefined
- Symbol형
- 비 원시 타입 자료형 → 객체형
- 객체, 함수, 배열이 포함되어있는 자료형
원시 타입
-
원시 타입 자료형은 프로그램이 실행되는 도중에는 단 하나의 값만을 갖고있는 타입
let number = 123; number = "123"; // 원시 타입 let array = [1, "2", 3]; //비원시 타입
- 위의 코드를 보면,
- number 변수는 값이 123 이었다가 “123” 으로 변경되었지만 한 번에 하나의 값만 갖고 있음
- array 변수는 1, “2”, 3 으로 한 번에 3개의 값을 가질 수 있음
- 여기서, number 변수처럼 하나의 고정된 값을 갖는 변수들의 타입을
원시 타입
이라고 하고, array 변수처럼 한 번에 여러 개의 값을 갖고 있는 변수들의 타입을비 원시 타입
이라고 함
- 위의 코드를 보면,
숫자형
- 숫자형(Number 타입)은 말그대로 정수, 소수 등의 모든 숫자를 나타냄
- 덧셈 +, 뺄셈 -, 곱셈 *, 나눗셈 / 의 사칙연산이 가능
let number = 25; console.log(number + 5); //30 console.log(number - 5); //20 console.log(number * 5); //125 console.log(number / 5); //5
- 자바스트립트의 숫자형에는 정수와 소수 뿐만 아니라
Infinity
,NaN
과 같은 특수한 숫자 값들이 포함되어 있음let number = 25; number = 10.00123; number = Infinity; number = NaN;
Infinity
: 무한대를 나타내는 값으로 하나의 변수에 할당하는 것도 가능하고, 어느 숫자든지 0으로 나누게 될 경우 반환되는 값let number = 10; console.log(number / 0); // Infinity
NaN
: Not A Number. 즉, 숫자가 아니다라는 뜻으로, 부정확한 연산을 하게 될 경우 반환되는 값
BigInt
- BigInt는 자주 쓰이지 않고, 아직 몇몇의 브라우저에서는 지원하지 않음
- BigInt 타입은 숫자형으로는 표현하지 못하는 범위인
(2^25 - 1)
보다 크거나-(2^25 - 1)
보다 작은 정수를 나타내야 할 때 사용하는 자료형let big1 = 9007199254740991n; let big2 = BigInt("9007199254740991");
- 길이에 상관없이 정수를 나타낼 수 있고, big1의 값과 같이 끝에 n을 붙이거나 big2의 값처럼 함수 BigInt() 호출에 생성 가능
- 숫자형 타입과 동일하게 사칙 연산이 가능
- BigInt형은 BigInt 형의 값으로만 연산이 가능하고, 일반 숫자형과는 연산할 수 없음!
문자형
- 자바스크립트 변수에 문자열(String 타입)을 할당하기 위해서는 문자열을 따옴표로 묶어야 함
-
문자열 변수 선언
let name1 = "hyunji"; //큰 따옴표 let name2 = "hyunji"; //작은 따옴표 let name3 = `hyunji`; // 역 따옴표(백틱)
- 우리가 흔히 사용하는 따옴표는
""
이지만, 따옴표는 3가지 종류가 있음- 큰따옴표 :
""
- 작은따옴표 :
''
- 역따옴표(백틱) : ````
- 큰따옴표 :
- 큰따옴표와 작은따옴표는 같은 기능을 하기 때문에 문자열을 할당하기 위에서는 둘 중 아무거나 사용해도 상관없음
-
역따옴표는 문자열을 묶게 될 경우 문자열 안에 특정 변수에 저장된 값을 넣을 수 있음
let name = "hyunji"; let intro = `제 이름은 ${name} 입니다.`; console.log(intro); //제 이름은 hyunji 입니다.
- name 변수에 담긴 “hyunji” 라는 값을 intro 변수에 넣기 위해서는, 역따옴표로 문자열을 묶은 후
${}
안에 특정 값을 넣어주면 됨- 이러한 방식을 “템플릿 리터럴”이라고 부름
- name 변수에 담긴 “hyunji” 라는 값을 intro 변수에 넣기 위해서는, 역따옴표로 문자열을 묶은 후
- 우리가 흔히 사용하는 따옴표는
Boolean형
- Boolean형은 값이
true
,false
로 이루어진 자료형 -
보통 참인지 거짓인지 분별하는 값을 저장할 때 사용
let isClicked = false; // 버튼이 클릭되었는지 안되었는지 let isOpen = true; // modal이 열렸는지 안열렸는지
-
if-else 조건문을 이용하여, 변수의 값이 참인지, 거짓인지에 따라 조건문으로 다른 코드를 실행해야할 때 자주 사용되는 자료형
let isClicked = false; //버튼이 클릭되었는지 안되었는지 if (isClicked) { console.log("클릭O"); } else { console.log("클릭X"); }
-
Null
- null을 하나의 값으로만 활용하는 다른 언어들과는 다르게, 자바스크립트에서 null은 오직
null 값만 포함하는 자료형
으로 쓰임 - null 값은 존재하지 않거나, 알 수 없는 값을 나타낼 때 사용
let name = null; // name 변수는 비어있는 값
- 그렇다면, name 변수에 값을 아무것도 할당 안할 경우는?
let name; console.log(name); //null???
Undefined
- 변수에 아무런 값을 할당하지 않고, console.log()를 통해 그 변수의 값을 출력하기 되면 null 값이 아닌
undefined
라는 값이 출력됨let name; console.log(name); //undefined
- undefined도 null 값과 마찬가지로, undefined 값만을 포함하는 자료형
- null 형과 다른 점은, undefined는 값이 존재하지 않거나 알 수 없는 값일 때가 아니라,
변수에 값이 할당되지 않은 상태
일 때 자동으로 undefined라는 값이 할당됨
형 변환
- 형 변환에는 묵시적 형 변환과 명시적 형 변환이 있음
묵시적 형 변환
let num1 = "15";
let num2 = 5;
console.log(num1 / num2); // 3
- num1의 자료형은 문자형이고, num2의 자료형은 숫자형
- 나누기 연산을 하기 위해서는 num1과 num2 변수 모두 숫자형이어야만 가능하지만, 출력 결과를 보면 15/5의 결과인 3이 출력되는 것을 확인할 수 있음
- 출력 값이 3이 나온 이유는, 자바스크립트 엔진이 나누기 연산을 실행하기 위해 문자열 “15”를 숫자 15로 적절하게 자동 변화해주었기 때문
- 자료형을 알맞게 변환해주는 기능을
형 변환
이라고 하며,- 우리가 의도해서가 아니라 자동으로 자료형을 변환해주는 것을
묵시적 형 변환
이라고 부름
- 우리가 의도해서가 아니라 자동으로 자료형을 변환해주는 것을
명시적 형 변환
let num1 = "15";
let num2 = 5;
console.log(num1 + num2); // 155
- 이번엔 문자열 “15”가 숫자형으로 변환되지 않고, 숫자 5가 문자열로 변환되어 “155” 라는 문자열이 출력
-
자바스크립트는 사칙연산 중 곱하기와 나누기, 빼기를 수행할 때는 문자열을 숫자로 형 변환을 하지만,
더하기 연산을 할 경우에는 숫자를 문자열로 변환
-
이 때, 15+5라는 연산을 실행하고 싶다면 num1의 값을 직접 숫자형으로 변환하면 됨
let num1 = "15"; let num2 = 5; console.log(parseInt(num1) + num2); // 20
-
parseInt()
내장함수는 문자열을 받아 숫자로 반환해주는 역할을 함
-
- 이렇게 직접 내장함수 등을 이용하여 값을 유지하며 자료형을 의도적으로 변환시키는 것을
명시적 형 변환
이라고 부름
📚 이 글은 인프런 - 웹 프론트엔드를 위한 자바스크립트 첫걸음을 수강하며 정리한 내용입니다.
강의자: 효빈 (Hyobin)
※ 본 글은 개인 학습 목적으로 작성되었으며, 일부 내용은 강의 자료를 참고하였습니다.
댓글남기기