JavaScript Deep Dive 요약 (1)

JungHanMa·2023년 2월 10일
0

Javascript

목록 보기
3/9
post-thumbnail

01장 프로그래밍

자바스크립트의 특징 : 인터프리터와 컴파일러의 장점을 결합해 비교적 처리 속도가 느린 인터프리터의 단점을 해결했다.


인터프리터: 코드가 실행되는 단계에서 런타임에 한줄씩 바이트로 변환


04장 변수

변수: 하나의 값을 저장하기 위해 확보한 메모리 공간


변수의 선언
var a;




변수의 할당
a = 80


var로 선언시, 런타임 이전에 undefined로 초기화되며,
런타임시점에 할당시 다른 메모리에 주소값을 할당하고, 해당 식별자로 값이 변경된다.



평가           값
10 + 20 = 30


값: 식이 평가되어, 생성된결과
메모리에는 값만 저장된다



06장 데이터타입

원시타입 : 숫자,문자, 불리언, undefined, null, 심볼
객체타입 : 원시타입이 아닌 것 (배열, 객체, 함수)


null : 변수가 이전에 참조 하던 값을 더 이상 참조 하지 않겠다는 의미 => 가비지 콜렉터에게 수거를 맡김


타입추론시점 : 런타임 시점
1. 데이터 크기 따라서 메모리 크기 확보
2. 값을 참조할떄, 한번에 읽어들일 메모리 공간 크기 결정
3. 2진수를 어떻게 해석할지 결정


typeof : 변수의 데이터 타입이 아니라, 값 의 데이터 타입을 반환한다.



컴파일 : 고급언어를 저급언어로 변환하는 것
정적타입: 컴파일시 타입추론,런타임 이전에 수행, 데이터타입과 값이 맞지 않으면 실행되지 않음. (TS)
동적타입: 런타임시 같이 컴파일이 이루어지며, 타입 추론을 한다 (JS)


10장 객체 터터럴

원시타입 : immutable(변경불가능) -> 재할당
객체 : mutable(변경가능)


객체는 프로퍼티와 메서드로 구성된다.
const count = {
name: 'test', => 프로퍼티
add: function () => 메서드

}


11장 원시값과 객체의 비교

원시타입과 객체의 차이점
1. 원시는 변경불가능, 객체는 변경가능
2. 원시는 실제값이 저장된 메모리 주소가 참조, 객체는 참조하고 있는 메모리 참조값을 전달
3. 원시는 원본에 원시값이 복사, 객체는 참조값이 복사


원시값을 [] 이런식으로, 유사배열로 사용하면 오브젝트 래퍼객체로 자동변환한다 (JS 엔진에서)
=> string이든, number든 new가 생략되어 있기 떄문

원시타입 : 값이 같을떄 다른 메모리 재할당
참조타입 : 참조값 전달

얇은복사 : 두개의 식별자의 메모리주소 다름, 같은 객체참조, 객체 depth 한겹
깊은복사 : 두개의 식별자 메모리주소다름, 다른 객체참조, 객체 depth 중첩

profile
Frontend Junior

0개의 댓글