17 - 생성자 함수에 의한 객체 생성
·
🤓 기술 학습 & 공부 기록/JS & TS
모던 자바스크립트 Deep Dive 정리 ▶ 객체 생성방법 2가지 1. 객체 리터럴 2. 생성자 함수 Object 생성자 함수 ▶ new 연산자와 함께 Object 생성자 함수를 호출하면 빈객체를 생성하여 반환한다 ▷ 예시 // 빈 객체의 생성 const person = new Object(); ▶ 인스턴스 ▷ 생성자 함수에 의해 생성된 객체 생성자 함수 ▶ 생성자 함수 ▷ new 연산자와 함께 호출하여 객체(인스턴스)를 생성하는 함수 ▶ 인스턴스 ▷ 생성자 함수에 의해 생성된 객체 ▶ Object 생성자 함수 이외에도 String, Number, Boolean, Function, Array 등의 빌트인 생성자 함수가 있음 객체 리터럴 방식 vs 생성자 함수 방식 객체 리터럴 방식 ▶ 간편하긴 하나, 동..
16 - 프로퍼티 어트리뷰트
·
🤓 기술 학습 & 공부 기록/JS & TS
모던 자바스크립트 Deep Dive 정리 자바스크립트 엔진은 프로퍼티를 생성할 때 프로퍼티의 상태를 나타내는 프로퍼티 어트리뷰트를 기본값으로 자동 정의 데이터 프로퍼티 ▶ 프로퍼티를 생성할 때 자동 정의되는 요소들 프로퍼티 어트리뷰트 프로퍼티 디스크립터 객체의 프로퍼티 설명 데이터 프로퍼티 [[Value]] value - 프로퍼티 밸류값 [[Writable]] writable - 프로퍼티 밸류값 변경 가능여부 - false 이면 읽기 전용 [[Enumerable]] enumerable - 열거 가능 여부 - false 이면 for .. in 또는 Object.keys() 메서드로 열거 불가 [[Configurable]] configurable - 재정의 가능 여부 - false 이면 프로퍼티 삭제, 프로..
15 - let, const 키워드와 블록 레벨 스코프
·
🤓 기술 학습 & 공부 기록/JS & TS
모던 자바스크립트 Deep Dive 정리 var 키워드로 선언한 변수의 문제점 1. 변수 중복 선언 허용 ▶ let, const에서는 에러가 발생하지만, var에서는 허용된다 var x = 1; var y = 1; // var 키워드로 선언된 변수는 같은 스코프 내에서 중복 선언을 허용한다. // 초기화문이 있는 변수 선언문은 자바스크립트 엔진에 의해 var 키워드가 없는 것처럼 동작한다. var x = 100; // 초기화문이 없는 변수 선언문은 무시된다. (에러를 발생시키지도 않음) var y; console.log(x); // 100 console.log(y); // 1 2. 함수 레벨 스코프 ▶ let, const는 블록 레벨 스코프이지만, var는 함수 레벨 스코프 ▷ var는 함수 블록 이외의..
14 - 전역 변수의 문제점
·
🤓 기술 학습 & 공부 기록/JS & TS
모던 자바스크립트 Deep Dive 정리 전역 변수의 문제점 1. 암묵적 결합 ▶모든 코드가 전역 변수를 참조하고 변경할 수 있음 ▷변수의 유효범위가 크면 클수록 코드의 가독성은 나빠지고 의도치 않게 상태가 변경될 위험 높아짐 2. 긴 생명 주기 ▶메모리 리소스를 오랜 기간 소비 3. 스코프 체인 상에서 종점에 존재 ▶전역 변수는 가장 마지막에 검색되므로, 변수 검색 속도가 느려짐 4. 네임 스페이스 오염 ▶파일이 분리되어 있어도 같은 이름의 전역변수나 전역함수가 같은 스코프에 존재할 경우 예상치 못한 에러 발생할 수 있음 전역 변수의 사용을 억제하는 방법 1. 즉시 실행 함수 ▶모든 코드를 즉시 실행 함수로 감싸면 모든 변수는 즉시 실행 함수의 지역 변수가 된다 ▷예시 (function () { var..
13 - 스코프
·
🤓 기술 학습 & 공부 기록/JS & TS
모던 자바스크립트 Deep Dive 정리 스코프란? ▶식별자가 유효한 범위 ▷예시) 식별자인 파일이름을 중복해서 사용할 수 있는 이유는, 폴더(디렉터리) 덕분 전역 스코프 ▶코드의 가장 바깥 영역 ▷전역 변수는 어디서든지 참조할 수 있다 지역 스코프 ▶함수 몸체 내부 ▷중첩이 가능 스코프 체인 ▶모든 스코프는 hierarchy를 가지며, 모든 지역 스코프의 최상위 스코프는 전역 스코프이다 ▶변수를 참조할때 자바스크립트 엔진은 스코프 체인을 통해 변수를 참조하는 코드의 스코프에서 시작하여 상위 스코프 방향으로 이동하며 선언된 변수를 검색한다 함수레벨 스코프 vs 블록레벨 스코프 ▶함수레벨 스코프 ▷var ▷오직 함수 몸체만을 스코프로 인정하며 if, for 등의 코드 블록을 무시 ▶블록레벨 스코프 ▷let..
12 - 함수
·
🤓 기술 학습 & 공부 기록/JS & TS
모던 자바스크립트 Deep Dive 정리 함수란? ▶일련의 과정을 문(statement)으로 구현하고 코드 블록으로 감싸서 하나의 실행 단위로 정의한 것 함수를 사용하는 이유 ▶실행 시점을 개발자가 결정할 수 있다 ▷원하는 시점에 함수 호출(invoke) 가능 ▶언제든지 재사용이 가능하다 ▷코드의 재사용성을 증가 -> 유지보수 편의성 증가 함수 리터럴 ▶함수 이름 ▷함수명은 식별자이기 때문에 식별자 네이밍 규칙을 준수해야 한다 ▷이름 사용 여부에 따라 기명함수, 무기명 함수로 나뉜다 ▶매개변수 ▷매개변수는 함수 몸체 내에서 변수와 동일하게 취급되므로 식별자 네이밍 규칙을 준수해야 한다 함수 정의 함수 정의에는 4가지 방법이 있다 1) 함수 선언문 2) 함수 표현식 3) Function 생성자 함수 4) ..