<TIL> Javascript - DATA TYPE

이민재·2021년 7월 28일
1

javascript

목록 보기
1/4
post-thumbnail

1. 데이터 타입💁‍♂️

데이터 타입이란 변수를 선언할 때, 숫자나 문자열 또는 이 외의 것들을 변수에 저장하는 데이터 종류를 말합니다.


C나 Java와 같은 다른 프로그래밍 언어에는 정수 타입 변수(int), 부동소수점 타입 변수(double) 등이 있어 그 변수의 타입과 일치하는 데이터만 저장이 가능합니다.

int num = 3; // num변수가 정수 타입 변수인 int로 타입 선언이 됩니다.
int string = “hello”; // 문자열인 “hello”는 정수타입 변수인 int에 맞지 않으므로 오류

이와 같이 변수에 타입이 있는 언어를 정적 타입 언어(static typed language) 라고 합니다.


하지만 동적 타입의 언어는 모든 타입의 데이터를 저장할 수 있습니다. 아래와 같이 실행할 때 변수에 저장된 데이터 타입을 동적으로 바꿀 수 있다는 것이죠.

num = 3; // 따로 타입 선언 없이도 num이 ‘3’이라는 숫자로 선언됨.
var num = 3;
var string = 3; // 모두 타입 에러 없이 num 또는 string 변수에 ‘3’이라는 숫자로 선언됨.

이와 같이 우리가 사용할 자바스크립트는 변수에 타입이 없는 동적 타입 언어(dynamic typed language)입니다.

2. 데이터 타입분류💁‍♂️

데이터 타입분류는 값을 그대로 할당하는지 저장된 주소 값을 할당하는지에 따라 Primitive Type(기본형)과 Reference Type(참조형) 으로 구분합니다.


2.1. Primitive Type (기본형, 또는 원시 타입) : 값을 그대로 할당

1) Number (숫자)

: 자바스크립트는 타입이 없기 때문에 숫자 모두 64bit 부동소수점으로 표현합니다.

var num = 3.4; // num에 정수 3.4를 저장
var num = 34; // num에 정수 34를 저장

(1) 숫자 연산하기

: 모든 숫자는 +,-,/,*,%를 할 수 있습니다.

var plus = num + 1;
console.log (plus); / num과 1을 더한 값
var mul = num * 5;
console.log(mul); / num과 5을 곱한 값
var remainder = 10 % 7;
console.log(remainder); / 107로 나눈 나머지, 3

(2) 연산 우선순위

: 곱하기와 나누기 (먼저)>>>더하기 빼기

var num = 10 + 5 * 10;
console.log(num); // 153숫자 판별하기

(3) 숫자 판별하기

: JavaScript에서 제공하는 기능들 중 typeof 연산자를 이용해서 어떤 종류의 값인지 확인할 수 있습니다.

var age = 30;
console.log(typeof age); // number

2) String (문자열)

: 따옴표(‘’), 큰따옴표(“”)로 쌓여 있으며, 문자열을 나타냅니다.

var str = “안녕하세요 이민재입니다.; // “안녕하세요 이민재입니다.” 라는 문자열 생성
var str = 안녕하세요 이민재입니다.; // 다음과 같은 값도 없고 문자열도 아님

(1) 문자열 붙이기

: 숫자를 더할 때와 마찬가지로 + 기호를 사용하여 아래와 같이 문자열을 붙일 수 있습니다.

var sayHello1 = “안녕하세요”;
var sayHello2 = “저는 이민재입니다.;
console.log(sayHello1+sayHello2); // “안녕하세요저는 이민재입니다.”

(2) 문자열 길이

: .length를 이용하여 모든 문자열은 그 길이에 대한 정보를 알 수 있습니다.

var num = “안녕하세요”;
console.log(num.length); // 5개

(3) 문자열 인덱스

: 문자열 종류의 값은 인덱스 정보를 이용하고, 인덱스라는 정보는 위치/순서를 의미하는 것과 비슷하다고 생각하면 됩니다. 인덱스는 항상 0부터 시작하게 되죠.

var alp = “abcd”;
console.log(alp[0]); // “a”
console.log(alp[3]); // “d”

3) Boolean

: 2가지 리터럴 값 true(참, 1), false(거짓, 0) 중 하나의 값을 가지며 조건부 테스트에 사용되기도 합니다.

console.log(3 > 30) = false;
console.log(30 > 3) = true;

4) null & undefined

  • null: 아무것도 없음을 의미하며, 의도적으로 비어있는 값을 넣을 때 사용합니다.
  • undefined: 초기화되지 않았거나 아직 값이 할당되지 않았음을 의미합니다.
null == undefined // true. 동등연산자, 값만 서로 같음.
null === undefined // false. 일치연산자. 값은 같으나 타입은 다름. null의 type은 object 

2.2. Reference Type (참조 타입) : 값이 저장된 주소값을 할당

1) Object

: 객체(object)는 다수의 property 혹은 method를 하나의 이름으로 묶어놓은 집합체

  • 선언방법
    객체 선언: {} 중괄호
    객체 형태: 이름(KEY):값(VALUE)
var Iam {
  name: lee, /// Iam이라는 객체에 name(KEY): lee(VALUE) 저장
  age: 150; /// Iam이라는 객체에 age(KEY): 150VALUE) 저장
}

2) Array

: 순서가 있는 데이터 집합을 Array(배열) 이라고 합니다.

object(객채)와 달리 배열은 인덱스가 ()으로 시작하는 숫자형 인덱스를 사용하며 한 개의 변수의 여러개의 값을 순차적으로 저장할 수 있습니다.

3)Function

: 함수의 기능으로서 input 받기, 기능수행, output 반환 등의 구성요소가 있습니다.

3. 동적 타이핑💁‍♂️

자바스크립트는 데이터 타입을 바꿀 수 있는 동적 타입언어입니다. 숫자가 할당된 변수라도 문자열이나 불리언 값 등을 재선언/재할당 할 수 있습니다.


3.1. 변수 선언 방식

(1) var: 재선언/재할당 가능.

var num = 10;
console.log(num); / 10
var num = 1000;
console.log(num); / 1000

변수를 한번 더 선언했음에도 불구하고 에러가 나오지 않고 각기 다른 값이 출력됩니다. 이는 유연한 변수 선언으로 간단한 테스트에는 편리 할 수 있겠으나, 코드량이 많아 진다면 어디에서 어떻게 사용될지도 파악하기 힘들뿐더러 값이 바뀔 우려가 있습니다.

(2) let: 재선언 불가능/ 재할당 가능

let num = 10;
console.log(num); / 10
let num = 100;
console.log(num);/ Uncaught SyntaxError: Identifier 'num' has already been declared 재선언 불가능
num = 100;
console.log(num); / 100 재할당 가능

(3) const: 재선언/ 재할당 불가능


이렇게 변수 선언 방식의 재선언/재할당을 통하여 데이터 타입을 변경해줄 수 있고, parseInt() 라는 함수를 통해서 변경해 줄수도 있다.

4. 데이터의 저장💁‍♂️

  • primitive type(기본형)
var a; (선언) // 데이터가 담길 공간(임의의 주소)확보하고, 확보된 데이터의 주소값을 가지고 변수명과 매칭시킴.
a = c; (할당) // 매칭된 주소로 이동하여 c를 저장한다,
profile
스스로 기억하기 위해서, 기록해요

0개의 댓글