<JKyEun.Blog/>
Posts
Notes
모던 자바스크립트 Deep Dive
2023. 07. 30.
모던 자바스크립트 Deep Dive 스터디
1주차
💫 4장 변수
var 키워드의 단점
블록레벨 스코프를 지원하지 않고 함수레벨 스코프를 지원한다 → 의도치 않은 전역변수가 생성될 수 있다.
호이스팅의 문제
자바스크립트는 선언단계와 초기화단계가 나누어져 실행된다
let
a
=
30
;
let
a
;
a
=
30
;
위처럼 한 줄에 선언과 초기화를 모두 작성하든, 아래처럼 선언과 초기화를 두 줄에 나누어 작성하든 자바스크립트는 똑같이 선언단게와 초기화단계를 나누어 실행한다.
변수의 호이스팅은 이러한 이유로 발생하는 것이다.
가비지 콜렉팅
메모리를 사용한 후 개발자가 이를 직접 반환해주어야 하는 언매니지드 언어가 있고, 참조되지 않는 메모리는 언어 차원에서 담당하여 반환해주는 매니지드 언어가 있다.
자바스크립트는 가비지 콜렉팅(참조되지 않는 메모리는 반환)이 되는 매니지드 언어이다.
🏜 5장 표현식과 문
값이란 표현식이 평가되어 생성된 결과이다.
표현식은 값으로 평가될 수 있는 문이다.
토큰이란 문법적인 의미를 가지며, 문법적으로 더 이상 나눌 수 없는 코드의 기본 요소이다.
자바스크립트는 세미콜론 자동 삽입 기능(ASI, Automatic semicolon insertion)이 존재한다.
변수에 할당할 수 있으면 표현식이다.
🌊 6장 데이터 타입
자바스크립트의 타입
자바스크립트의 타입은 크게 원시타입과 객체타입으로 분류할 수 있다.
개행 문자에는 라인 피드(Line Feed)와 캐리지 리턴(Carriage Return)이 있다.
ECMAScript 사양에 숫자 타입은 배정밀도 64비트 부동소수점 형식을 사용한다.
자바스크립트를 이루고 있는 거의 모든 것은 객체이다.
📑 7장 연산자
증가/감소 단항 산술연산자의 위치
++x, x++
연산의 순서가 다르다.
암묵적 타입 변환
자바스크립트는 정적 타입 언어와 다르게 변수를 선언할 때 타입을 선언하지 않는다.
타입은 추론되고, 재할당에 의해 변수의 타입은 언제든지 동적으로 변할 수 있다. → 동적 타이핑
따라서 자바스크립트는 암묵적 타입 변환을 한다.
typeof null
object로 뜬다. 자바스크립트가 인정한 오류.
===로 체크하자.
심화연산자
옵셔널 체이닝 (?)
null 병합 연산자 (??)
프로퍼티 삭제 (delete)
인스턴스 생성 (new)
instanceof
in