브라우저의 렌더링 과정
·
JavaScript
Node.js -> 자바스크립트 서버?? X -> 구글의 V8 자바스크립트 엔진으로 빌드된 자바스크립트 런타임 환경 -> 서버 사이드 애플리케이션 개발에서도 사용 가능 *파싱 파싱(구문 분석 syntax analysis)은 프로그래밍 언어의 문법에 맞게 작성된 텍스트 문서를 읽어 들여 실행하기 위해 텍스트 문서의 문자열을 토큰으로 분해(어휘 분석)하고, 토큰의 문법적 의미와 구조를 반영하여 트리 구조의 자료구조인 파스트리 parse tree/syntax tree를 생성하는 일련의 과정을 말한다. [ 내용을 토큰으로 분해 -> 토큰의 문법적 의미와 구조를 반영하여 파스트리 생성 ] *토큰 : 언어가 사용하는 기본 단어 ( 구문적 의미의 최소 단위) ex) string, void ... *렌더링 : HTML..
Set과 Map
·
JavaScript
Set 객체는 중복되지 않는 유일한 값들의 집합이다 구분 배열 Set 객체 동일한 값을 중복하여 포함할 수 있다 O X 요소 순서에 의미가 있다 O X 인덱스로 요소에 접근할 수 있다 O X Set은 수학적 집합을 구현하기 위한 자료구조다 ( 교집합 , 합집합등등) Set 객체 중복은 존재불가 / 모든 값을 요소로 저장가능 / ===로 다른값도 set에서는 같다고 생각함 const set=new Set() // 빈 set 객체 생성 const set1=new Set([1,2,3,3]) // 중복된 3은 하나만 저장함 const set2=new Set(["hello"]) // "h" "e" "l" "o" 마찬가지로 중복값은 하나만 //중복 제거 const uni=arr=>[...new Set(arr)] /..
스프레드 문법/디스트럭처링 할당
·
JavaScript
스프레드 문법은 for...of 문으로 순회가능한 이터러블에 한정된다 ...[1,2,3] 을 하면 1 2 3이 나옴 이때 1 2 3은 값들의 목록이다 값이 아니라 개별적인 값들의 목록이기에 스프레드 문법의 결과는 변수에 할당이 불가능하다 const test=...[1,2,3] //SyntaxError Rest 파라미터와 차이 Rest 파라미터는 함수에 전달된 인수들의 목록을 배열로 전달받기 위해 스프레드는 펼치기 위해 function foo(...rest){ console.log(rest); //[1,2,3] } foo(...[1,2,3]) 배열 리터럴 내부에서 사용하는 경우 const arr=[...[1,2],...[3,4]] console.log(arr); //[1,2,3,4] const arr1=[..
이터러블
·
JavaScript
32장 String 생략 33장 Symbol 생략 이터레이션 프로토콜 순회 가능한 데이터 컬렌션을 만들기 위해 미리 약속한 규칙 이터러블 프로토콜( Iterable protocol) Symbol.iterator를 프로퍼티 키로 사용한 메서드를 직접 구현하거나 프로토타입 체인을 통해 상속받은 Symbol,iterator 메서드를 호출하면 이터레이터 프로토콜을 준수한 이터레이터를 반환한다. 이러한 규약을 이터러블 프로토콜이라고 하며 , 이터러블 프로토콜을 준수한 객체를 이터러블이라고 한다 이터러블은 for...of 문으로 순회할 수 있으며 스프레드 문법과 배열 디스트럭처링 할당의 대상으로 사용가능 이터레이터 프로토콜 이터러블의 Symbol.iterator 메서드를 호출하면 이터레이터 프로토콜을 준수한 이터레..
RegExp
·
JavaScript
Number(28장)~Data(30장)까지 생략 RegExp(정규 표현식) 일정한 패턴을 가진 문자열의 집합을 표현하기 위해 사용하는 형식 언어(formal language) 정규 표현식은 문자열을 대상으로 패턴 매칭 기능을 제공한다. 패턴 매칭 기능 : 특정 패턴과 일치하는지 문자열을 검색하거나 추출 또는 치환할 수 있는 기능을 말한다 const tel='010-1234-567팔' const regExp=/^\d{3}-\d{4}-\d{4}$/; regExp.test(tel) // false const target='Is this all there is?' //패턴 is //플래그 : i => 대소문자를 구별하지 않고 검색한다 방식1 : const regexp=/is/i 방식2 : cont regexp=..
배열
·
JavaScript
객체와 배열 구분 객체 배열 구조 프로퍼티 키와 값 인덱스와 요소 값의 참조 프로퍼티 키 인덱스 값의 순서 X O length 프로퍼티 X O 배열 자료구조에서 말하는 배열은 동일한 크기의 메모리 공간이 빈틈없이 연속적으로 나열된 자료구조를 말한다. 즉, 배열의 요소는 하나의 데이터 탕비으로 통일되어 있으며 연속적으로 인접해 있다. -> 이를 밀집배열(dense array)라고 한다 검색 대상 요소의 메모리 주소 = 배열의 시작 메모리 주소 + 인데스 * 요소의 바이트 수 메모리 주소가 100이고 각 요소가 8바이트면 아래처럼 계산된다 100 + 0*8 =100 100 + 1*8 =108 배열의 요소가 연속적으로 이어져 있지 않은 배열을 희소 배열(sparse array)라고 한다 자바스크립트의 배열은 ..