전체 글
-
32장. String책/모던 자바스크립트 딥다이브 2022. 6. 12. 20:32
32장. String 원시 타입인 문자열을 다룰 때 유용한 프로퍼티와 메서드를 제공한다. 32-1. String 생성자 함수 String 생성자 함수에 인수를 전달하지 않고 new 연산자와 함께 호출하면 [[StringData]] 내부 슬롯에 빈 문자열을 할당한 String 래퍼 객체를 생성한다. 문자열은 원시 값이므로 변경 불가 문자열이 아닌 값을 전달하면 문자열로 강제 변환한 후 [[StringData]] 내부 슬롯에 변환된 문자열을 할당한 String 래퍼 객체를 생성한다. const strObj = new String(); console.log(strObj); // String { length: 0, [[PrimitiveValue]]: "" } const strObj = new String('Le..
-
30장. Date책/모던 자바스크립트 딥다이브 2022. 6. 12. 20:32
30장. Date UTC(Coordinated Universal Time): 국제 표준시 GMT(Greenwich Mean Time): 그리니치 평균시 KST(Korea Standard Time): 한국 표준시, UTC + 9 UTC와 GMT는 초의 소수점 단위에서만 차이가 나기 때문에 일상에서는 혼용되어 사용된다. 기술적인 표기에는 UTC가 사용된다. 현재 날짜와 시간은 JS 코드가 실행된 시스템의 시계에 의해 결정된다. 30-1. Date 생성자 함수 Date 객체는 내부적으로 날짜와 시간을 나타내는 정수값을 갖는다. 1970년 1월 1일 00:00:00(UTC)를 기점으로 Date 객체가 나타내는 날짜와 시간까지의 밀리초를 나타낸다. 예를 들어 1970년 1월 2일0시는 정수값 86,400,000(..
-
29장. Math책/모던 자바스크립트 딥다이브 2022. 6. 12. 20:32
29장. Math 표준 빌트인 객체 Math 상수와 함수를 위한 프로퍼티, 메서드 제공 생성자 함수가 아니며, 정적 프로퍼티와 정적 메서드만 제공한다. 29-1. Math 프로퍼티 Math.PI Math.PI; // 3.141592653589793 29-2. Math 메서드 Math.abs 절대값을 반환 Math.abs(-1); // 1 Math.abs('-1'); // 1 Math.abs(''); // 0 Math.abs([]); // 0 Math.abs(null); // 0 Math.abs(undefined); // NaN Math.abs({}); // NaN Math.abs('string'); // NaN Math.abs(); // NaN Math.round 소수점 이하를 반올림한 정수를 반환 Ma..
-
28장. Number책/모던 자바스크립트 딥다이브 2022. 6. 12. 20:31
28장. Number 28-1. Number 생성자 함수 생성자에 인수를 전달하지 않고 호출하면 [[NumberData]] 내무 슬롯에 0을 할당한 Number 래퍼 객체를 생성한다. 인수로 숫자를 전달하면 [[NumberData]] 내부 슬롯에 인수로 전달 받은 숫자를 할당한 Number 래퍼 객체를 생성한다. 인수로 숫자가 아닌 값을 전달하면 숫자로 강제 변환한다. 숫자로 변환할 수 없다면 NaN을 내부 슬롯에 할당한 Number 래퍼 객체를 생성한다. const numObj = new Number(); console.log(numObj); // Number {[[PrimitiveValue]]: 0} const numObj = new Number(10); console.log(numObj); // N..
-
37장. Set과 Map책/모던 자바스크립트 딥다이브 2022. 6. 8. 22:04
37장. Set과 Map 37-1. Set 수학적 집합을 구현하기 위한 자료구조 배열과 달리 동일한 값 중복 포함 불가, 요소 순서 의미 없음, 인덱스로 접근 불가 Set 생성자 함수는 이터러블을 인수로 받아 Set 객체를 생성한다. const set = new Set(); console.log(set); // Set(0) {} const set1 = new Set([1, 2, 3, 3]); console.log(set1); // Set(3) {1, 2, 3} const set2 = new Set('hello'); console.log(set2); // Set(4) {'h', 'e', 'l', 'o'} 개수 확인 setter 함수 없이 getter 함수만 존재하는 접근자 프로퍼티 const { size ..
-
브라우저, JS 흐름 정리 메모JavaScript & TypeScript 2022. 5. 22. 22:52
도마뱀 보면서 헷갈리는 거 찾다가 전체 흐름 정리해서 적어두고 싶은데 적기엔 양이 많아 전체틀만 메모해둔다. 근데 내가 정리한 글 보는 건 날 위해서고 다른 사람이 공부하기엔 잘 정리된 글들 보는 게 더 좋아 보여서 밑에 적어 놓겠다. 일단 대충 봤으니 정리는 미래의 수빈이가 쪼개서 천천히 하는 걸로... 브라우저: Chrome 기준 아래 시리즈 https://d2.naver.com/helloworld/2922312 JS Engine: V8 기준 https://ui.toast.com/weekly-pick/ko_20200228 https://dev.to/deepu105/demystifying-memory-management-in-modern-programming-languages-ddd https://ui..
-
43장. Ajax책/모던 자바스크립트 딥다이브 2022. 5. 22. 22:49
43장. Ajax 43-1. Ajax란? Ajax(Asynchronous JavaScript and XML)란 JS를 사용하여 브라우저가 서버에게 비동기 방식으로 데이터를 요청하고, 서버가 응답한 데이터를 수신하여 웹페이지를 동적으로 갱신하는 프로그래밍 방식을 말한다. 전통적인 방식 단점 변경할 필요가 없는 부분까지 포함된 HTML을 매번 다시 전송받기에 불필요한 데이터 통신이 발생한다. 변경할 필요가 없는 부분까지 처음부터 다시 렌더링한다. 화면 전환이 일어나면 화면이 순간적으로 깜빡임. 서버로부터 응답이 있을 때까지 다음 처리는 블로킹된다. Ajax 방식 장점 변경할 부분을 갱신하는 데 필요한 데이터만 서버로부터 전송받기에 불필요한 데이터 통신 발생하지 않는다. 변경할 필요가 없는 부분 다시 렌더링 ..
-
42장. 비동기 프로그래밍책/모던 자바스크립트 딥다이브 2022. 5. 22. 22:46
42장. 비동기 프로그래밍 42-1. 동기 처리와 비동기 처리 JS 엔진은 단 하나의 실행 컨텍스트 스택을 가진다. 동시에 2개 이상의 함수를 실행할 수 없다는 것을 의미한다. JS 엔진은 한 번에 하나의 태스크만 실행할 수 있는 싱글 스레드 방식으로 동작한다. 싱글 스레드 방식에서 처리에 시간이 걸리는 태스크를 실행하는 경우 블로킹이 발생한다. 현재 실행 중인 태스크가 종료할 때까지 다음에 실행될 태스크가 대기하는 방식을 synchronous 처리 현재 실행 중인 태스크가 종료되지 않은 상태라도 다음 태스크를 곧바로 실행하는 방식을 asynchronous 처리 setTimeout, setInterval, HTTP 요청, 이벤트 핸들러는 비동기 처리 방식으로 동작한다. 42-2. 이벤트 루프와 태스크 큐..