본문 바로가기
JavaScript

JavaScript의 변수에 함수 넣기, 자료구조

by Dodledd 2024. 3. 18.

저번에는 자료형과 변수에 대해 알아보았다.

그 중 다루지 않았던 원시값(문자열, 숫자) 를 객체로 만들 수 있다.

 

먼저 이해하기 위해 자바의 객체를 떠올려보자.

자바의 객체는 큰 구조로 2가지가 있다.

  1. 필드(변수 정의부)
  2. 메서드(toString, get/set, 메서드)

즉 데이터와 기능이 합쳐져서 객체라는 것이 만들어진다.

 

그러면 자바스크립트의 객체 선언을 봐보자

        let hi = {
            name: "DD",
            sayHi: function(){
                alert("안녕하세요");
            }
        };

        hi.sayHi();

 

자바 스크립트에서의 객체 선언은 변수에 메서드(함수)를 넣는 것이다.

갑자기 뭔가 이상하다.

"분명이 변수에는 함수가 들어갈 수가 없는데?"

자바스크립트는 가능하다. 받아들여야한다

 

저렇게 변수에 함수를 넣으면 객체가 된다.

객체의 구조는 크게 2가지였다. 필드와 메서드, hi라는 객체(변수)에는 name: DD라는 데이터가 있고 sayHi라는 메서드가 있으니 객체로 불릴 수 있다.

 

객체는 이론적인 것이다. 현실세계의 무언가를 데이터세계에서 구현하기위한 이론적인 것.

그러므로 자바의 객체 이론과 자바스크립트의 객체 이론이 표현하는 방식만 다를 뿐 결과적으로는 아주 비슷한것이다.

 

그럼 그 데이이터를 담아서 이용하는 큰 구조인 자료구조에 대해 알아보도록 하자!

 

  1. 배열
  2. 맵과 셋
  3. Date

자잘하게 나누면 더 나눌 수 있고 묶으려면 묶을 수 있다.

위에있는 기준은 작성자가 편하게 읽기위해 정해진 것이므로 절대적인 기준이 아닙니다.

 

1. 배열

기본적으로 배열을 만드는 것은 자바와 ArrayList와 진짜 비슷하다.

우리가 익히 알고있는 것들은 빠르게 넘어가보자

 

인덱스로 값을 가져오는 법

let fruits = ["사과", "오렌지", "자두"];
fruits[0]
fruits[1]
fruits[2]

 

 

pop (배열 끝의 요소 제거)

fruits.pop();

 

 

push (배열 끝에 요소를 추가)

fruits.push("배");

 

 

shift (배열 앞 요소를 제거함과 동시에 반환)

fruits.shift();

 

 

unshift(배열 앞에 요소를 추가)

fruits.unshift('사과');

 

 

2. 맵과 셋

이것도 자바와 거의 완벽하게 일치합니다.

자바의 객체는 맵과 셋으로 이루어져 있어 비슷할 수 있지만 맵은 키에 다양한 자료형을 넣을 수 있다는 차이점이 있다.

 

new Map() 새로운 맵 생성

let map = new Map();

 

 

map.set(key, value) 키 값에 따른 값 저장

map.set('1', '안녕');

 

 

map.get(key) 키 값에 따른 값 반환

map.get('1');

 

 

map.has(key) 키 존재 유무에 따라 true, false 반환

map.has('1');

 

 

map.delete(key) 키에 해당하는 값을 제거

map.delete('1');

 

 

map.clear() 맵 초기화

map.clear();

 

 

map.size 요소의 개수를 반환

map.size();

 

3.Date

new Date() 객체 생성하기

let now = new Date();

 

getFullYear() : 연도(네 자릿수)를 반환합니다

getMonth() : 월을 반환합니다.

getDate() : 일을 반환합니다.

getHours() : 시간을 반환합니다

getMinutes() : 분을 반환합니다.

getSeconds() : 초를 반환합니다.

getMilliseconds() : 밀리초를 반환합니다.

getDay() : 일요일 (0) 부터 토요일(6) 까지의 숫자 중 하나를 반환합니다.

 

여기까지만 보고 다른 메서드는 잘 이용할 것 같지 않기에 다음에 필요하면 찾아보는 것으로 하겠습니다.