JAVASCRIPT

javascript - data type

funfunweb 2023. 6. 13. 12:27

Data type 이란 프로그램에서 다룰 수 있는 값의 종류이다.

자바스크립트에서 다루는 data type 에는 원시타입(primitive data type)과 객체타입(object/reference type)이 있다.

 

 

원시타입

 

1. 숫자(number)

정수, 소수점, 지수를 표현할 수 있다.

 

let num1 = 100;
let num2 - 100.00;

숫자형은 사칙연산이 가능하다.

+  더하기    - 좌변과 우변에 숫자가 아닌 문자나 변수등이 오면 더하기 연산이 아닌 연결 연산을 한다.

-   빼기

*   곱하기

/    나누기

%  나머지

let zero = 0;
let one = 1;
let two = 2;

 

2. 문자열(string)

문자열은 따옴표 안에 저장한다. 큰따옴표(" "), 작은따옴표(' ') , 백틱(` `)

let str1 = "문자";
let str2 = '문자';
let str3 = `문자`;

문자 안에 문자가 들어갈 경우 - 바깥쪽을 "" 로 처리하면 안쪽은 '' 로 처리

let str1 = '문자안에"문자"넣기';
let str2 = "문자안에 '문자'넣기";
let str3 = '문자안에 \'문자\'넣기';
let str4 = `문자안에 ${str1}`;  //문자 내부에 변수 넣기  es6적용

ECMAscript 2015(ES6)에 추가된 템플릿 문자열을 이용하면 '+' 연산자를 사용하지 않고 문자나 변수를 연결할 수 있습니다.

문자열에 큰다옴표나 작은따옴표 대신 백틱/백쿼드(`) 를 사용하겨 ${변수}로 표현합니다.

특수한 목적으로 '\'(역슬래시)를 사용하는 경우도 있는데 이것을 Escape Sequence 라고 한다.

 

주요 Escape Sequence

Escape Sequence 설명
\n 행 바꿈
\t 탭문자
\\ 역슬래시
\' 작은따옴표
\" 큰따옴표

참고로 document.write() 에서는 <br>태그로 행을 바꿀 수 있지만 alert()에서는 바꿀수 없으므로 이럴 경우 "\n"을 사용하면 행을 바꿀 수 있습니다.

 

See the Pen javascript - string data by 정은 (@luchiaChoi) on CodePen.

3. Boolean(논리)데이터

참/거짓(true/false)로 표현한다.  boolean 에서 0 은 false 를 의미, 0 외 숫자나 문자는 true 를 의미한다.

 

let bool = true;
let bool1 = ( 10 > 1);
let bool2 = (10 < 1);
let bool3 = (true > false);

console.log(bool1);  // true 반환
console.log(bool2);  //false 반환
console.log(bool3);  // true 반환

4. Undefined 데이터

undefined 데이터는 변수는 선언하였으나 데이터 값을 지정하지 않았을 경우나 객체의 속성 값을 지정하지 않았을 경우 자동으로 저장되는 값을 의미한다.

let text;

console.log(text);  // undefined

5. Null 데이터

null 데이터는 undefined 와 유사하지만 변수를 빈(empty)상태로 만들거나, 데이터를 저장하였으나 값이 존재하지 않을때 null 값을 반환한다.

 

let obj = 1;
obj = null;

console.log(obj);   // null

 

undefined 와 null 의 boolean 은 false 이다.

let obj;
let obj1 = null;

console.log(obj); // undefined
console.log(obj1);  // null

console.log(Boolean(obj));  // false
console.log(Boolean(obj1));  // false

console.log(obj == obj1);  //true    의미는 같다.
console.log(obj === obj1);  //false  타입이 다르다.

6. typeof

변수에 저장되어 있는 데이터의 타입을 알아볼때 사용한다.

다른 개발자가 작성한 타입을 알아야 하거나, API통신등을 통해 받아온 데이터를 타입에 따라 다른 방식으로 처리해야 할 경우 많이 사용한다.

See the Pen javascript - typeof by 정은 (@luchiaChoi) on CodePen.

 

null 은 object 형으로 나오는데object 는 객체형을 의미한다. 

하지만 nul 은 object 형이 아니다.

이는 javascript 초기 버전 오류로 현재 하위 호환성 문제로 수정하지 않는다고 합니다.

 

 

객체타입

1. 객체(object )

변수와 메서드를 한 곳에 모아주는 꾸러미 역할을 한다.

let obj = New Object();

2. 배열(array)

여러개의 데이터를 원소로 가질 수 있는 데이터 집합

let arr = new Array();

3. 함수(function)

실행할 구문을 미리 정의해 놓고 호출하여 사용하는 실행부

 

function sum(a,b){
let c = a + b;
}

7. Symbol

Symbol 은 생성자가 symbol 원시 값을 반환하는 내장 객체입니다. symbol 원시 값은 심볼 값, 혹은 짧게 심볼이라고만 부르며 고유함이 보장된다.

map 이나 다른 자료 구조에서 고유한 식별자가 필요하거나 동시 다발적으로 일어날수 있는 코드에서 우선순위를 주고 싶을때 사용.

식별자를 string  으로 쓰는 경우도 있는데 string은 다른 모듈이나 다른 파일에서 동일한 string 을 썼을때 동일한 식별자로 간주된다. 

하지만 아래 예제처럼 동일한 aaa를 가지고 식별자를 만들었지만 두가지의 symbol 은 다른 경우이다.

 

:symbol 은 동일한 string 으로 만들었어도 다른 symbol 로 간주되기 때문에 동일한 string 을 넣어 만들어도 고유한 식별자가 된다.

 

See the Pen javascript symbol by 정은 (@luchiaChoi) on CodePen.

 

string 이 같은데 동일한 symbol로 만들고 싶다면

 

See the Pen symbol2 by 정은 (@luchiaChoi) on CodePen.

 

주어진 string 에 맞는 symbol을 만들어줘

 

symbol 을 바로 출력하면 error 가 발생하게 되는데 .description 을 넣어 string 으로 변환하여 출력하면 된다.

See the Pen javascript symbol 출력 by 정은 (@luchiaChoi) on CodePen.

 

 

 

 

 

 

'JAVASCRIPT' 카테고리의 다른 글

javascript 연산자 - 비교연산자  (0) 2023.06.21
Data type & Data type Conversion  (0) 2023.06.14
javascript 연산자 - 산술연산자  (0) 2023.06.13
JAVASCRIPT 변수  (0) 2023.06.13
JAVA SCRIPT란?  (0) 2023.06.13