개발/Deep Dive (JS) 정리(10)
-
[JS] 21장 빌트인 객체-모던 자바스크립트 Deep Dive
21.1 자바스크립트 객체의 분류 표준 빌트인 객체 : 표준 빌트인 객체는 ECMAScript 사양에 정의된 객체를 말하며, 애플리케이션 전역의 공통 기능을 제공한다. 표준 빌트인 객체는 ECMAScript 사양에 정의된 객체이므로 자바스크립트 실행 환경(브라우저 또는 Node.js 환경)과 관계없이 언제나 사용할 수 있다. 표준 빌트인 객체는 전역 객체의 프로퍼티로서 제공된다. 따라서 별도의 선언 없이 전역 변수처럼 언제나 참조할 수 있다. 호스트 객체 : 호스트 객체는 ECMAScript 사양에 정의되어 있지 않지만 자바스크립트 실행 환경에서 추가로 제공하는 객체를 말한다. 사용자 정의 객체 : 사용자가 직접 정의한 객체이다. 21.2 표준 빌트인 객체 Math, Reflect, JSON을 제외한 표..
2024.02.29 -
[JS] 10장 객체 리터럴-모던 자바스크립트 Deep Dive
10.1 객체란? 원시 타입의 값, 즉 원시 값은 변경 불가능한 값(immutable value)이지만 객체 타입의 값, 즉 객체는 변경 가능한 값(mutable value)이다. 객체는 0개 이상의 프로퍼티로 구성된 집합이며, 프로퍼티는 키와 값으로 구성된다. 자바스크립트에서 사용할 수 있는 모든 값은 프로퍼티 값이 될 수 있다. 프로퍼티 값이 함수일 경우, 일반 함수와 구분하기 위해 메서드(method)라 부른다. 프로퍼티: 객체의 상태를 나타내는 값(data) 메서드: 프로퍼티(상태 데이터)를 참조하고 조작할 수 있는 동작(behavior) 10.2 객체 리터럴에 의한 객체 생성 자바스크립트는 프로토타입 기반 객체지향 언어로서 클래스 기반 객체지향 언어와는 달리 다양한 객체 생성 방법을 지원한다. ..
2024.02.01 -
[JS] 09장 타입 변환과 단축 평가-모던 자바스크립트 Deep Dive
9.1 타입 변환이란? 자바스크립트의 모든 값은 타입이 있는데 이는 개발자의 의도에 따라 다른 타입으로 변환할 수 있다. 개발자가 의도적으로 값의 타입을 변환하는 것을 명시적 타입 변환, 또는 타입 캐스팅이라고 한다. 반대로 개발자의 의도와는 상관없이 표현식을 평가하는 도중에 자바스크립트 엔진에 의해 암묵적으로 타입이 자동으로 변환되는 것을 암묵적 타입 변환, 또는 타입 강제 변환이라 한다. var x = 10; //명시적 타입 변환 var str = x.toString(); console.log(typeof str, str); // string 10 //암묵적 타입 변환 str = x + ' '; console.log(typeof str, str); // string 10 //x 변수의 값이 변경된 것..
2024.02.01 -
[JS] 13장 스코프-모던 자바스크립트 Deep Dive
13.1 스코프란? 스코프는 자바스크립트를 포함한 모든 프로그래밍 언어의 기본적이며 중요한 개념이다. 자바스크립트에서 var 키워드로 선언한 변수와 let, const 키워드로 선언한 변수의 스코프도 다르게 동작한다. 모든 식별자(변수이름, 함수 이름, 클래스 이름 등)는 자신이 선언된 위치에 의해 다른 코드가 식별자 자신을 참조할 수 있는 유효 범위가 결정된다. 이를 스코프라 한다. 즉, 스코프는 식별자가 유효한 범위를 말한다. 또한 자바스크립트 엔진은 이름이 같은 두 개의 변수 중에서 어떤 변수를 참조해야 할 것인지를 결정해야 하는데 이를 식별자 결정이라 한다. 자바스크립트 엔진은 스코프를 통해 어떤 변수를 탐조해야 할 것인지 결정한다. 따라서 스코프란 자바스크립트 엔진이 식별자를 검색할 때 사용하는..
2024.01.27 -
[JS] 12장 제어문-모던 자바스크립트 Deep Dive
12.1 함수란? 프로그래밍 언어의 함수는 수학의 함수와 같은 개념이다. 일련의 과정을 문으로 구현하고 코드 블록으로 감싸서 하나의 실행 단위로 정의한 것이다. 함수 내부로 입력을 전달받는 변수를 매개 변수(parameter), 입력을 인수(argument), 출력을 반환값(return value)이라 한다. 함수는 값이며, 특정 함수를 구별하기 위해 식별자인 함수 이름을 사용할 수 있다. 12.2 함수를 사용하는 이유 코드를 재사용하기 위해 사용한다. 재사용성을 높이는 함수는 코드의 중복을 억제하고 유지보수의 편의성을 높이고 실수를 줄여 코드의 신뢰성을 높이는 효과가 있다. 변수 이름과 마찬가지로 함수 이름 또한 함수 자신의 역할을 잘 설명해야 하고 이는 함수 내부 코드를 이해하지 않고도 함수의 역할을..
2024.01.24 -
[JS] 08장 제어문-모던 자바스크립트 Deep Dive
제어문은 조건에 따라 코드 블록을 실행하거나 반복 실행할 때 사용한다. 일반적으로 코드는 위에서 아래 방향으로 실행되는데 제어문을 사용하면 코드의 실행 흐름을 인위적으로 제어할 수 있다. 이는 직관적인 코드의 흐름을 혼란스럽게 만들어 가독성을 해친다는 단점이 있다. 이번 장에서는 for문이 매우 중요하므로 꼭 이해하도록 하자. 8.1 블록문 블록문은 0개 이상의 문을 중괄호로 묶은 것으로 자바스크립트는 블록문을 하나의 실행 단위로 취급한다. 블록문은 단독으로 사용할 수도 있으나 일반적으로 제어문이나 함수를 정의할 때 사용하는 것이 일반적이다. 특히 블록문이 끝날 때는 세미콜론을 붙이지 않는다. 블록문은 언제나 문의 종료를 의미하는 자체 종결성을 갖기 때문이다. 8.2 조건문 조건문은 주어진 조건식의 평가..
2024.01.15