일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 초기셋팅
- vscode
- React
- 프로젝트 셋팅
- 티스토리챌린지
- nextjs
- 소셜 로그인
- 리터럴
- git
- 코테
- domain
- 스파르타코딩클럽
- vercel
- 코딩테스트
- CORS
- useRouter
- error
- 자주 까먹는
- 모던 자바스크립트
- Next
- array정적메서드
- 모던자바스크립트
- 구글 로그인
- deep dive
- 셋팅
- js
- 프로그래머스
- 코드카타
- 오블완
- 내일배움캠프
- Today
- Total
목록Book/모던 자바스크립트 Deep Dive (16)
파피루스
소스 코드 : 실행가능한 코드 ; executable code)종류전역 코드함수 코드eval 코드모듈 코드 자바스크립트 엔진은 소스코드를 평가와 실행으로 나누어 처리한다. 소스코드의 평가1) 선언문 실행2) 식별자를 키로 실행 컨텍스트가 관리하는 스코프(렉시컬 환경의 환경 레코드)에 등록소스코드의 실행 = 런타임 시작1) 실행 컨텍스트가 관리하는 스코프에서, 실행에 필요한 정보를 검색해서 취득한다.2) 실행 컨텍스트가 관리하는 스코프에, 실행 결과를 등록한다. 실행 컨텍스트: 소스코드를 실행하는 데 필요한 환경을 제공하고 코드의 실행 결과를 스택(stack) 구조로 관리한다. 역할1. 전역 코드 평가: 전역 코드의 선언문 실행 후, 결과를 컨텍스트의 전역 스코프에 등록한다. 2. 전역 코드 실행: 전역..
: 자기 참조 변수 (자신이 속한 객체를 가리키는 식별자) 함수 호출 방식에 의해 동적으로 결정된다. OO에서 this는ㅁㅁ 이다.전역에서 전역 객체 window일반 함수 내부에서전역 객체 window메서드 내부에서매서드 호출한 객체생성자 함수 내부에서생성자 함수가 생성할 인스턴스apply/call/bind 메서드에 의한 간접 호출메서드에 첫번째 인수로 전달한 객체 console.log(this); //window [전역]function foo() { console.log(this); // window [일반 함수 내부]}foo();const person = { name : '떼굴펜', getName() { console.log(this); // {name : '떼굴펜', ge..
자바스크립트 객체 분류1. 표준 빌트인 객체 : ECMAScript 사양에 정의된 객체2. 호스트 객체 : 실행환경 (브라우저, node.js)에서 제공 (ex. DOM, fecth 등)3. 사용자 정의 객체 래퍼 객체 : 객체처럼 접근하면 생성되는 임시 객체 원시값을 객체처럼 사용하면, 자바스크립트 엔진은 암묵적으로 연관 객체를 생성하여 프로퍼티에 접근하거나 메서드를 호출하고 다시 원시 값으로 되돌린다.const str = 'hello';str.name = 'Lee'; // 여기에서 str은 암묵적으로 생성된 래퍼 객체이다.console.log(str.name); // undefinedconsole.log(typeof str, str); // string hello 전역 객체: ..
오류 발생 가능성을 높이거나 최적화 문제를 일으킬 수 있는 코드에 대해 명시적 에러를 발생시킴으로서, 자바스크립트 문법을 좀더 엄격히 적용한 것이다. 유사한 역할로서 린트들을 사용하는데, 린트 도구는 제한 오류부터 코딩 컨벤션까지 설정 파일 형태로 정의할 수 있기에 조금 더 강력하다. stric mode 적용하기 전역의 혹은 함수 몸체의 선두에 'use strict';를 추가한다.'use strict';function foo() { x= 10; //ReferenceError : x is not diefined (stric mode가 아니면 에러가 나지 않음)}foo(); strict mode 적용 시, 뭐가 다른가요?Reference Error: 선언하지 않은 변수를 참..
자바스크립트는 멀티 패러다임 프로그래밍 언어이다. 객체지향 프로그래밍 프로그램을 객체의 집합으로 표현하려는 패러다임이다. 실세계의 실체(사물이나 개념)는 특징이나 성질을 나타내는 속성(attribute/property)를 갖고 있고, 속성을 통해 여러 개의 값을 하나의 단위로 구성한 복합 자료구조를 객체라고 한다. 꼭 필요한 속성만 간추려 표현하는 것을 추상화라고 한다. 객체 지향 프로그래밍은 객체의 상태(state)를 나타내는 데이터, 그리고 상태를 조작할 수 있는 동작(behavior)을 하나의 논리 단위로 묶어서 생각하는 것이다. 이때 객체의 상태 데이터를 프로퍼티(property), 동작을 메서드(method)라고 부른다. const Person = { name : '떼굴펜', ..
일급 객체1. 무명의 리터럴로 생성할 수 있다. 즉 런타임에 생성이 가능하다.2. 변수나 자료구조에 저장할 수 있다.3. 함수의 매개변수에 전달할 수 있다.4. 함수의 반환값으로 사용할 수 있다. 함수 객체의 프로퍼티1. arguments : 매개변수 객체 순회 가능한 유사 배열 객체이며,함수 내부에서 지역 변수처럼 사용된다.매개변수 개수를 확정할 수 없는 가변 인자 함수를 구현할 때 유용하다. 2. caller : 함수 자신을 호출한 함수.참고) 비표준 프로퍼티이기에 사용하지 말자 3. length : 선언한 매개변수의 개수arguments.length와 함수 객체의 length는 다른 수 있다. 4. name : 함수의 이름 5. __proto__ 접근자 : [[prototype]] 내부 슬롯이 ..