JavaScript(62)
-
화살표 함수
일반함수 function add1(x, y) { return x+y; } 화살표 함수 const add1 = (x, y) ⇒ { return x+y; } const add2 = (x,y) ⇒ x+y; const add3 = (x,y) ⇒ (x + y); const not = x ⇒ !x; // 객체를 리턴하는 것은 소괄호가 필수다 const obj = (x, y) ⇒ ({x, y}) - 화살표 함수가 기존 function() {} 을 대체하는 건 아니다. (this 가 달라지기 때문) - 화살표 함수는 부모의 this 를 물려받는다. - 일반 함수는 부모의 this 와 나의 this 가 다르다 . 즉 자기만의 this 를 가진다.
2023.04.08 -
템플릿 문자열 ( 백틱 )
기본 const name = ‘Zac’; console.log(``나의 이름은 ${name} 입니다.``); 함수호출 방법 function a() { console.log('안뇽!'); } a(); // 일반적으로 위처럼 호출하지만 백틱으로도 호출할 수 있고 태그드 템플릿 리터럴 이라고한다. a``; // 템플릿 리터럴
2023.04.08 -
프로토타입 (링크)
https://developer.mozilla.org/ko/docs/Learn/JavaScript/Objects/Object_prototypes Object prototypes - Web 개발 학습하기 | MDN Javascript에서는 객체를 상속하기 위하여 프로토타입이라는 방식을 사용합니다. 본 문서에서는 프로토타입 체인이 동작하는 방식을 설명하고 이미 존재하는 생성자에 메소드를 추가하기 위해 프 developer.mozilla.org https://www.nextree.co.kr/p7323/ JavaScript : 프로토타입(prototype) 이해 JavaScript는 클래스라는 개념이 없습니다. 그래서 기존의 객체를 복사하여(cloning) 새로운 객체를 생성하는 프로토타입 기반의 언어입니다. ..
2023.04.08 -
논 블로킹
Javascript 는 절대 블로킹 연산을 하지 않는다. 논 블로킹은 이벤트 루프 모델의 무척 흥미로운 특징으로 대부분 입출력 처리가 이벤트와 콜백을 통해 수행되므로 애플리케이션이 indexedDB 질의나 XHR 요청의 반환을 대기 중이더라도 여전히 사용자 입력 등 다른 것들을 처리할 수 있는 것이다.
2023.04.08 -
실행컨텍스트
실행할 코드에 제공할 환경 정보들을 모아놓은 객체 순서 1. 호이스팅이 발생 ( 선언된 변수를 위로 끌어올린다, 함수는 함수 전체가 호이스팅된다 ) 2. 외부 환경정보를 구성한다. 3. this 값을 설정한다 - 실행 컨텍스트의 전역공간은 자동으로 컨텍스트로 구성이된다. 구성할때 생기는 것 - VariableEnvironment : 현재 컨텍스트 내의 식별자(변수)들에 대한 정보, 외부 환경 정보, 선언 시점의 LexicalEnvironment 의 스냅샷(변경사항을 반영하지않는다.) - LexicalEnvironment : 처음은 위와 같음, 변경사항이 실시간으로 반영된다. environmentRecord와 outerEnvironmentReference로 구성 되어 있고 environmentRecord ..
2023.04.08 -
이벤트루프
코드의 실행, 이벤트의 수집과 처리, 큐에 대기 중인 하위 작업을 처리하는 이벤트 루프에 기반하고 있다. 스택 - 함수의 호출들은 프레임 스택을 형성한다. - 호출할 때 함수의 인수와 지역변수를 포함하는 첫번째 프레임이 생성된다. - 인수와 지역변수는 스택 바깥에 저장되므로 바깥 함수가 반환한 후에도 계속 존재할 수 있다. 중첩 함수에서 지역 변수에 접근할 수 있는 이유가 이것이다. 힙 - 객체는 힙에 할당된다. 힙은 단순히 메모리의 큰 ( 대부분 구조화되지 않은 ) 영역을 지칭하는 용어이다. 큐 - 메시지 큐, 즉 처리할 메시지의 대기열을 사용한다. 각각의 메시지는 메시지를 처리하기 위한 함수가 연결되어 있다. - 이벤트 루프의 임의 시점에 런타임은 대기열에서 가장 오래된 메시지부터 큐에서 꺼내 처리한..
2023.04.08