스터디/모던자바스크립트딥다이브(14)
-
[모던 자바스크립트 딥다이브] 12장 함수
함수란?수학의 함수입력을 받아 출력을 내보내는 일련의 과정을 정의 한 것 프로그래밍 언어의 함수수학의 함수와 같은 개념, 일련의 과정을 문으로 구현하고 그 문들을 코드블록으로 감싸서 하나의 실행 단위로 정의한 것함수는 값이며 여러개 존재할 수 있으므로 함수를 구별하기 위해 식별자인 함수 이름을 사용할 수 있다. 함수 정의 - 함수 선언문이나 다양한 방법을 통해 일련의 과정을 함수로 정의 하는 것매개변수 (parameter) - 입력을 전달받는 변수인수 (argument)- 매개변수에 전달될 값, 입력하는 것반환값(return value) - 함수의 결과로 출력되는 값함수 호출 - 정의된 함수를 실행하는 것 함수를 정의한 뒤, 인수를 매개변수를 통해 함수에 전달하고함수의 실행을..
2024.04.24 -
[모던자바스크립트 딥다이브] 17장 생성자 함수에 의한 객체 생성
Review 자바스크립트 객체 생성 방식 객체 리터럴 Object 생성자 함수 생성자 함수 Object.create 메섣, 클래스(ES6) Object 생성자 함수 new 연산자와 함께 Object 생성자 함수를 호출 → 빈 객체를 생성하여 반환 반환된 빈 객체에 프로퍼티 또는 메서드를 추가하여 객체를 완성할 수 있다. // 빈 객체 생성 const resume = new Object() // 프로퍼티 추가 resume.name = '김말순' resume.career = 2.3 resume.submit = function(){ console.log('안녕하십니까. 지원자 김말순 입니다.') } 생성자 함수 1. 객체 리터럴에 의한 객체 생성 방식의 문제점 객체 리터럴에 의한 객체 생성 방식 장점 : 직관..
2023.08.16 -
[모던자바스크립트 딥다이브] 16장 프로퍼티 어트리뷰트 (2)
프로퍼티 정의 프로퍼티 정의 Object.definedProperty Object.definedProperties 새로운 프로퍼티를 추가하며 프로퍼티 어트리뷰트를 명시적으로 정의 / 기존 프로퍼티의 프로퍼티 어트리뷰트를 재 정의하는 것 value, get, set, writable(갱신 여부), configurable(재정의 여부), enumerable(열거 여부) const developer = {} //Object.definedProperty 는 한번에 하나의 프로퍼티만 정의 가능하다. //Object.definedProperties 는 한번에 여러개의 프로퍼티를 정의 할 수 있다. Object.definedProperty(developer, 'language', { value : ['JavaScri..
2023.08.16 -
[모던자바스크립트 딥다이브] 16장 프로퍼티 어트리뷰트 (1)
내부 슬롯과 내부 메서드 내부 슬롯(internal slot) 과 내부 메서드(internal method) : 자바스크립트 엔진의 내부 로직. ECMAScript 사양을 설명할 때 사용하는 의사 프로퍼티, 의사 메서드 원칙적으로 직접 접근 불가. 일부 내부 슬롯과 내부 메서드에 한해서 간접적으로 접근 가능 [[Prototype]] 내부 슬롯은 proto 를 통해 간접적으로 접근 가능 const obj = {} obj.[[Prototype]] //접근 불가 obj.__proto__ // 접근 가능 [참고 영상] 내부 슬롯과 내부 메소드 프로퍼티 어트리뷰트와 프로퍼티 디스크립터 객체 자바스크립트 엔진은 프로퍼티를 생성할 때 프로퍼티 어트리뷰트를 자동으로 생성한다. 프로퍼티 어트리뷰트란 프로퍼티의 값, 갱신..
2023.08.15 -
[모던자바스크립트 딥다이브] 15장 let, co nst 키워드와 블록 레벨 스코프
var 키워드로 선언한 변수의 문제점 1. 변수 중복 선언 허용 같은 스코프 내에서 중복 선언을 허용 → 의도치 않게 변수 값이 변경되는 부작용 발생 초기화 문이 있는 변수 선언문의 경우 자바스크립트 앤진에 의해 var 키워드가 없는 것 처럼 동작. (초기화 문이 없는 변수 선언문은 무시된다.) var x = 10 // 코드진행 ~~~ var x = 100 // x = 100 처럼 재할당 하는 것 처럼 동작하게 된다. 2. 함수 레벨 스코프 var 키워드로 선언한 변수는 함수의 코드 블록만을 지역 스코프로 인정한다. var x = 10 if(true){ var x = 100 } // if 블럭 내의 var 키워드로 선언된 변수 x와 if 블록 외부의 var키워드로 선언한 변수 x는 // 동일 스코프 이므..
2023.08.13 -
[모던자바스크립트 딥다이브] 14장 전역 변수의 문제점
변수의 생명 주기 변수는 생명 주기를 가진다. ife cycle 선언에 의해 생성되고 할당을 통해 값을 가지고 언젠가 소멸하는 일련의 과정 메모리 공간이 확보된 시점부터 메모리 공간이 해제되어 가용 메모리 풀에 반환되는 시점까지 1. 지역 변수의 생명 주기 함수의 생명 주기와 일치한다. 지역 변수가 하수보다 오래 생존하는 경우 - 지역 변수가 속한 스코프를 누군가가 계속 참조하고 있을 때 함수 내부에서 선언된 변수는 함수가 생성한 스코프(랙시컬환경)에 등록된다. 해당 스코프가 소멸 될때까지 지역 변수는 유효하다. 누군가 스코프를 참조하고 있다면 해당 스코프는 계속 생존하게 되고 지역 변수는 소멸되지 않는다. 2. 전역 변수의 생명 주기 어플리케이션의 생명주기와 동일 var 키워드로 선언한 변수는 전역 객..
2023.08.13