프론트엔드 개발자의 핵심 역량
Good - 커뮤니케이션, UI, 네트워크, 보안, 브라우저, 디자인
Bad - 컴퓨터 과학 무시, CSS 안하기, 코더가 되는 것
1. 자료형 - 8가지
Number, String, Boolean, Object, Array, Function, Undefined, Null
2. 메모리 - 자바스크립트에서 메모리를 어떻게 다루지?
할당 -> 사용 -> 해제의 과정을 거침
3. Garbage Collector - 사용하지 않는 메모리를 해제하는 역할을 맡음, Mark and Sweep Algorithm 사용
Mark and Sweep Algorithm - 닿을 수 없는 주소를 더 이상 필요없는 주소로 정의하고 지우는 알고리즘
4. 자바스크립트 엔진은 가상 머신으로 구성 -> 가상 머신은 Heap과 Call Stack 영역이 존재
Heap: 참조 타입이 들어감
Call Stack: 원시 타입이 들어감
1. 표현식 - 어떠한 결과 값으로 평가되는 식
2. 연산자의 종류
할당 연산자, 비교 연산자, 산술 연산자, 비트 연산자, 논리 연산자, 삼항 연산자, 관계 연산자, typeof
흐름 제어 - 조건 or 반복을 통해 상태를 제어, 2가지 방식
Control Flow - 조건문, 반복문 방식
Data Flow - 함수형 프로그래밍 방식
1. 배열
- 생성
const arr = new Array(); const arr1 = []; const arr2 = new Array(3).fill(3); // [3,3,3]
- 순회
for문, for of문const arr = [1,2,3]; for(const item of arr){ console.log(item); } // 1 // 2 // 3
2. 객체
- 생성
const obj = new Object(); const obj1 = {};
- 순회
for in문for(const key in obj){ console.log(key, obj[key]); }
- 접근
[ ] or . 사용
1. 스코프 - 유효범위, 변수가 어느 범위까지 참조되는 지
2. 클로저
함수가 선언된 환경의 스코프를 기억
-> 함수가 스코프 밖에서 실행되도 기억한 스코프를 접근할 수 있게 해주는 문법
은닉화 - 클로저를 이용하여 내부 변수와 함수를 숨길 수 있음