[23장] 실행 컨텍스트

23.1 소스코드의 타입 ECMAScript 사양은 소스코드를 4가지 타입으로 구분한다. 4가지 타입의 소스코드는 실행 컨텍스트를 생성한다. 1) 전역 코드 전역 코드는 전역 스코프를 생성해야 한다. var 키워드로 선언된 전역 변수와 함수 선언문으로 정의된 전역 함

2022년 1월 26일
·
0개의 댓글

[22장] this

22.1 this 키워드 1) this는 자신이 속한 객체 또는 자신이 생성할 인스턴스를 가리키는 자기 참조 변수이다. 2) this는 자바스크립트 엔진에 의해 암묵적으로 생성되며, 코드 어디서든 참조할 수 있다. 함수를 호출하면 arguments 객체와 this가

2022년 1월 24일
·
0개의 댓글

[20장] strict mode

20.1 strict mode란? 1) strict mode는 JavaScript 언어의 문법을 엄격히 적용해 오류를 발생시킬 가능성이 높거나 자바스크립트 엔진의 최적화 작업에 문제를 일으킬 수 있는 코드에 대해 명시적인 에러를 발생시킨다. 2) ES6에서 도입된 클

2022년 1월 23일
·
0개의 댓글

[18장] 함수와 일급 객체

18.1 일급 객체 일급 객체는 다음의 조건을 만족하는 객체이다. > 1. 무명의 리터럴로 생성할 수 있다. 즉, 런타임에 생성이 가능하다. 변수나 자료구조(객체, 배열 등)에 저장할 수 있다. 함수의 매개변수에 전달할 수 있다. 함수의 반환값으로 사용할 수 있다. 즉

2022년 1월 10일
·
0개의 댓글

[17장] 생성자 함수에 의한 객체 생성

17.1 Object 생성자 함수 new 연산자와 함께 Object 생성자 함수를 호출하면 빈 객체를 생성하여 반환한다. 빈 객체를 생성한 이후 프로퍼티 또는 메서드를 추가해 객체를 완성할 수 있다. 생성자 함수란 new 연산자와 함께 호출하여 객체(instance)

2022년 1월 9일
·
0개의 댓글

[16장] 프로퍼티 어트리뷰트

16.1 내부 슬롯과 내부 메서드 internal slot과 internal method는 JavaScript 엔진의 구현 알고리즘을 설명하기 위해 ECMAScript 사양에서 사용하는 pseudo property와 pseudo method이다. 음....이 문장만

2022년 1월 9일
·
0개의 댓글

[15장] let, const 키워드와 블록 레벨 스코프

15.1 var 키워드로 선언한 변수의 문제점 1) 변수 중복 선언을 허용하며, 이 경우 에러는 발생하지 않기 때문에, 의도치 않게 변수 값을 변경시킬 수 있다. 2) var 키워드로 선언한 변수는 오로지 함수의 코드 블록만을 지역 스코프로 인정한다. 따라서 함수 외

2022년 1월 9일
·
0개의 댓글

[14장] 전역 변수의 문제점

14.1 변수의 생명 주기 1) 지역 변수의 생명 주기 지역 변수의 생명 주기는 함수의 생명 주기와 일치한다. 변수 선언은 선언문이 어디에 있든 상관 없이 가장 먼저 실행된다. 하지만 이는 전역 변수에 한정된 것이다. 함수 내부에서 선언한 변수는 함수가 호출된 직후에

2022년 1월 9일
·
0개의 댓글

[13장] 스코프

13.1 스코프란? 스코프 = scope = 유효범위 위 코드에서, 매개변수 x,y 는 함수 몸체 내부에서만 참조할 수 있다. 즉, 매개변수의 scope는 함수 몸체 내부이다. > 모든 식별자는 자신이 선언된 위치에 의해 다른 코드가 식별자 자신을 참조할 수 있는

2022년 1월 8일
·
0개의 댓글

[12장] 함수(2)

매개변수 primitive의 경우, 원시값이므로 변경이 불가능하다. 재할당을 통해 원시값을 교체해야 하므로, changeVal 함수를 호출한 후에도 num 값이 100이다.매개변수 obj의 경우, 객체이므로 변경 가능하다. 재할당 없이 직접 할당된 객체를 변경해야 하므

2022년 1월 8일
·
0개의 댓글

[12장] 함수(1)

12.1 함수란? 함수는 일련의 과정을 statement로 구현하고, 코드 블록으로 감싸서 하나의 실행 단위로 정의한 것이다. 12.2 함수를 사용하는 이유 함수는 코드의 재사용성 측면에서 매우 유용하다. 유지보수의 편의성을 높이고, 코드의 신뢰성과 가독성을 높일 수

2022년 1월 8일
·
0개의 댓글
post-thumbnail

[11장] 원시 값과 객체의 비교

11.1 원시값 1) 변경 불가능하다. 한번 생성된 원시 값은 read only 값으로서, 변경할 수 없다. 2)

2022년 1월 8일
·
0개의 댓글

[10장] 객체 리터럴

10.1 객체란? 1) 원시 값을 제외한 나머지 값은 모두 객체이다. 2) 다양한 타입의 값을 하나의 단위로 구성한 복합적인 자료구조 3) 원시 타입의 값은 변경 불가능하지만, 객체는 변경 가능하다. 4) 0개 이상의 프로퍼티로 구성된 집합이며, 프로퍼티는 key와 v

2022년 1월 7일
·
0개의 댓글

[9장] 타입 변환과 단축 평가

9.1 타입 변환이란? 1) JavaScript의 모든 값은 타입이 있다. 2) 명시적 타입 변환 == 타입 캐스팅 = 개발자가 의도적으로 값의 타입을 변환하는 것 3) 암묵적 타입 변환 == 타입 강제 변환 = 개발자의 의도와는 상관없이 JavaScript 엔진에

2022년 1월 7일
·
0개의 댓글
post-thumbnail

[8장] 제어문

8.1 블록문 블록문은 0개 이상의 문(statement)을 중괄호로 묶은 것으로, JavaScript에서는 블록문이 하나의 실행 단위이다. 블록문의 끝에는 세미콜론을 붙이지 않는다. 8.2 조건문 JavaScript에서는 조건문으로 if...else문과 switch

2022년 1월 6일
·
0개의 댓글

[7장] 연산자

7.1 산술 연산자 산술 연산이 불가능한 경우, NaN을 반환한다. 산술 연산자는 피연산자의 개수에 따라 이항 산술 연산자와 단항 산술 연산자로 구분할 수 있다. 이항 산술 연산자에는 +, -, *, /, % 가 해당된다. 단항 산술 연산자에는 ++, --, +, -

2022년 1월 6일
·
0개의 댓글

[6장] 데이터 타입

<모던 자바스크립트 Deep Dive> 6.1 숫자 타입 6.2 문자열 타입 6.3 불리언 타입 6.4 undefined 타입 6.5 null 타입 6.6 심벌 타입 6.7 객체 타입 6.8 데이터 타입의 필요성 6.9 동적 타이핑

2021년 11월 2일
·
0개의 댓글

[5장] 표현식과 문

<모던 자바스크립트 Deep Dive> 5.1 값 5.2 리터럴 5.3 표현식 5.4 문 5.5 세미콜론과 세미콜론 자동 삽입 기능

2021년 11월 1일
·
0개의 댓글

[4장] 변수

<모던 자바스크립트 Deep Dive> 4.1 변수란 무엇인가? 왜 필요한가? 4.2 식별자 4.3 변수 선언 4.4 변수 선언의 실행 시점과 변수 호이스팅 4.5 값의 할당 4.6 값의 재할당 4.7 식별자 네이밍 규칙

2021년 11월 1일
·
0개의 댓글