Search
Duplicate
🏸

5. 자료구조와 자료형

1.
원시값의 메서드
: 원시값은 객체가 아님
: 원시형의 종류는 문자, 숫자, bigint, 불린, 심볼, null, undefined 총 일곱 가지
: 객체는 프로퍼티에 다양한 값을 가질 수 있음
: 객체의 장점은 프로퍼티로 함수를 가질 수 있다는 것
원시값을 객체처럼 사용하기
요약
2.
숫자형
: 자바스크립트는 2가지 자료형을 지원
a.
일반적인 숫자는 배정밀도 부동소수점 숫자로 알려진 64비트 형식
b.
임의의 길이를 가진 정수는 BigInt 숫자로 표현, 일반적인 숫자는 2^53 ~ -2^53 이하일 수 없어서 생성됨
숫자를 입력하는 다양한 방법
toString(base)
어림수 구하기
부정확한 계산
isNaN과 isFinite
parseInt와 parseFloat
기타 수학 함수
요약
3.
문자형
: 텍스트 형식의 데이터는 길이에 상관없이 문자열 형태로 저장, 페이지 인코딩 방식과 상관없이 UTF-16 형식을 따옴
따옴표
특수기호
문자열의 길이
특정 글자에 접근하기
문자열의 불변성
대, 소문자 변경하기
부분 문자열 찾기 및 순회
부분 문자열 추출하기
문자열 비교하기
문자열 심화 (브라우저 단계에서 중요할듯)
요약
4.
배열
: 순서가 있는 컬렉션을 저장할 때 쓰는 자료구조
배열 선언
pop,push와 shift,unshift
배열의 내부 동작 원리
성능
반복문
‘length’ 프로퍼티
new Array()
다차원 배열
toString
요약
5.
배열과 메서드
: 배열은 다양한 메서드를 제공
요소 추가, 제거 메서드
forEach로 반복작업 하기
배열 탐색하기
배열을 변형하는 메서드
Array.isArray로 배열 여부 알아내기
배열 메서드와 ‘thisArg’
요약
6.
iterable 객체
: 배열을 일반화한 객체, 배열은 대표적인 이터러블, 배열 외에도 다수의 내장 객체가 반복 가능함
Symbol.iterator (작성중)
문자열
이터레이터를 명시적으로 호출하기
이터러블과 유사배열
Array.from
요약
7.
맵과 셋
: 객체 - 키가 있는 컬렉션을 저장함
: 배열 - 순서가 있는 컬렉션을 저장함
맵의 요소에 반복 작업하기
Object.entries: 객체를 맵으로 바꾸기
Object.fromEntries: 맵을 객체로 바꾸기
셋의 값에 반복 작업하기
요약
8.
위크맵과 위크셋
: 가비지 컬렉션에서도 배웠듯이 자바스크립트 엔진은 도달 가능한 값을 메모리에 유지함
개요
위크맵
유스 케이스: 추가 데이터
유스 케이스: 캐싱
위크셋
요약
9.
Object.keys, values, entries
: 순회에 필요한 메서드 map.keys(), map.values(), map.entries(), 해당 메서드들은 포괄적인 용도로 만들어져 다양한 곳에서 사용할 수 있음
Map
Set
Array
: 일반 객체에서 해당 메서드들이 어떻게 작동하는 지
Object.keys, values, entries
객체 변환하기
10.
구조 분해 할당
: 키를 가진 데이터 여러 개를 하나의 엔티티에 저장할 땐 객체
: 컬렉션에 데이터를 순서대로 저장할 땐 배열
: 개발을 하다 보면 함수에 객체나 배열의 일부를 전달해야할 때가 생김, 이때 구조 분해 할당을 사용함
: 각 기법의 세부적인 용법들은 추후 정리가 필요함
배열 분해하기
객체 분해하기
중첩 구조 분해
똑똑한 함수 매개변수
요약
11.
Date 객체와 날짜
: 날짜를 저장할 수 있고 날짜와 관련된 메서드도 제공해주는 내장 객체 Date
: Date 객체를 활용하면 생성 및 수정 시간을 저장하거나 측정할 수 있고 현재 날짜를 출력하는 용도 등으로도 활용할 수 있음
객체 생성하기
날짜 구성요소 얻기 (get)
날짜 구성요소 설정하기 (set)
자동 고침
Date 객체를 숫자로 변경해 시간차 측정하기
Date.now()
벤치마크 테스트
Date.parse와 문자열
요약
12.
JSON과 메서드
: 복잡한 객체를 다루고 있을 때, 이를 로깅할 때, 문자열 형태로 보고 싶다면?
: toString을 만들어 사용, 그러나 프로퍼티의 변경이 잦다면?
: 이를 해결해주는 방버에 대해 알아보자
JSON.stringify
replacer로 원하는 프로퍼티만 직렬화하기 ⇒ 순환 참조 객체를 직렬화하기 위해서
space로 가독성 높이기
커스텀 “toJSON”
JSON.parse
reviver 사용하기
요약