모던 자바스크립트 Deep Dive 변수 : 메모리 공간 식별위해 붙인 이름으로 프로그래밍 언어 컴파일러 / 인터프리터에 의해 값이 저장된 메모리의 공간 주소로 치환되어 실행된다.식별자 : 메모리 주소기억으로 값이 저장되어있는 메모리 주소와 맵핑됨. 변수 선언 : 변수
함수 : 일련의 과정을 문으로 구현, 코드블록으로 감싸 실행단위로 정의. 다른언어와는 달리 JS 함수는 객체타입임 함수를 만들때 역할 1개만 주도록 해야하고, 매개변수는 3개 넘지 않는게 이상적임. 자바스크립트 엔진은 함수 선언문을 해석해 함수 생성. 자바스크립트 엔진
내부 슬롯, 내부 메서드 : 자바스크립트 엔진 구현 알고리즘 설명위해 ECMAScript 에서 사용하는 의사 플로퍼티, 메서드 \[ ] 로 감싼 이름들내부 슬롯과 메서드는 사양대로 구현되어 실제로 동작하나 개발자가 직접 접근은 못함 단 일부 슬롯과 내부 메서드에 한해
생성자함수 constructor new 연산자와 함께 호출해 객체(인스턴스) 생성하는 함수 This 객체자신의 프로퍼티나 메서드 참조위한 자기 참조 변수 . This바인딩은 함수 호출 방식에 따라 동적으로 결정됨 자바스크립트 엔진은 암묵적인 처리로 인스턴스 생성,반환
컴퓨터 프로그래밍 언어 디자인에서, 일급 객체(영어: first-class object)란 다른 객체들에 일반적으로 적용 가능한 연산을 모두 지원하는 객체를 가리킨다. 보통 함수에 매개변수로 넘기기, 수정하기, 변수에 대입하기와 같은 연산을 지원할 때 일급 객체라고 한
객체 지향 프로그래밍은 상태를 나타내는 데이터와 상태 데이터를 조작할수 있는 동작을 하나의 논리적 단위로 묶어 생각함. 객체는 상태 데이터와 동작을 하나의 논리적 단위로 묶은 복합적 자료구조라 할수 있다. 객체의 상태를 프로퍼티, 동작을 메서드라 부름.
ES6부터 도입된 클래스 모듈은 strict mode기본적으로 적용됨!strict mode는 함수단위나 스크립트 단위로 하는건 비추.. 부분별로 하고싶으면 즉시 실행 함수안에 넣어서 하는게 바람직함. SyntaxError with문 사용. with문: 전달된 객체를 스
자바스크립트 객체 : 표준빌트인, 호스트, 사용자 정의 표준빌트인 객체: ECMAScript에 정의된 객체. 전역객체의 프로퍼티로 제공, 별도의 선언 없이 전역변수처럼 언제나 참고가능 → Object, String, Number, Boolean, Date, Math
객체 : 상태 나타내는 프로퍼티 + 동작 나타내는 메서드 메서드 : 자신이 속한 객체의 상태 프로퍼티 참조,변경 가능 그러기위해서는 자신이 속한 객체 가리키는 식별자 참조! 객체 리터럴로 객체 생성시, 메서드 내부에서 메서드 자신이 속한 객체 가르키는 식별자 재귀적으
자바스크립트 엔진 : 소스 코드를 평가 → 실행 하는 과정으로 처리 소스 코드 평가시 , 실행 컨텍스트 생성, 변수 함수 e등 이 선언문 먼저 실행해 스코프에 등록. 런타임 : 소스평가 과정 이후 순차적으로 실행, 필요시 실행컨텍스트 스코프에서 변수 검색 . 실행 결과
클로저 : 함수형 프로그래밍 언어 하스켈, 리스프, 얼렝 , 스칼라에서 사용되는 특성임 자바스크립트 렉시컬 스코프 따르는 프로그래밍 언어. JS 엔진은 함수를 어디에서 정의했느냐에따라 상위 스코프 결정 → 렉시컬스코프(정적스코프) 함수가 정의된 환경 , 호출위치 다름
호이스팅 : 발생하지 않는것처럼 동작하나 클래스도 결국 함수. 함수 선언문으로 정의된 생성자 함수는 함수 호이스팅 발생, 함수 표현식은 변수 호이스팅 발생 즉, 클래스 선언문은 let const 변수처럼 변수 호이스팅되어 TDZ에 빠져 호이스팅 안생기는것처럼 보임 일
ES6 이전, 모든 함수는 다양한 함수 형태로 호출가능 : 일반적 함수, 생성자 ,메서드 ( callable, constructor → 호출 할수 있고, 인스턴스 생성할수있는 함수 객체 ) 메서드라 불리던 객체에 바인딩된 함수도 callable, constructor
공부하다가 내가 이해한대로 적어보는 Promise 비동기 함수 호출시 내부 비동기로 작동하는 코드가 완료되지 않아도 즉시 종료, 즉 예측히 어렵고 기대한대로 동작하지 않음. 아래 그림처럼 조련되지 않은 강아지. 같은 느낌??하지만, Promise는 조련이 잘된 강아지라
: 함수의 실행을 중지 시킬수 있다. next메서드 호출시, yield까지 실행 하는방식으로 함수 호출자와 함수 상태를주고 받을 수 있다. 비동기 처리를 동기 처리처럼 구현 할수 있는 장점이 있어서, 리덕스 사가 할때 많이 쓰인다.가독성있고 간단하게 비동기처리처럼 구
setTimeout: 1회성 setInterval : 타이머 만료될때마다 반복 호출 위는 비동기 처리 방식으로 동작함 scroll, resize, input, mouseover는 짧은 시간 간격으로 연속 발생 -> 성능에 저하, 그래서 이를 방지하기위해서는 디바운스와