Front-End/JavaScript6 [JavaScript] 생성자 함수 생성자 new 연산자와 함께 호출하여 객체를 생성하는 함수를 말한다. 인스턴스를 생성, 생성된 인스턴스를 초기화 한다. 인스턴스를 생성하고 반환하는 코드가 없어도 자바스크립트 엔진은 암묵적인 처리를 통해 인스턴스를 생성하고 반환한다. 암묵적으로 빈 객체가 생성된다. 이 객체는 this에 바인딩 된다. 이 처리는 런타임 이전에 실행됨 this에 바인딩 된 인스턴스는 생성자 함수에 기술된 코드가 한줄씩 실행되며 프로퍼티나 메서드를 추가하며 초기화 된다. 모든 처리가 끝나면 완성된 인스턴스가 바인딩된 this가 암묵적으로 반환된다. this가 아닌 다른 객체를 명시적 반환하면 암묵적 this 객체는 반환되지 못하고, return문에 명시한 객체가 반환된다. function Circle(radius){ this.. 2022. 10. 29. [JavaScript] 객체 변경 방지 객체 변경 방지 메서드 구분 메서드 추가 삭제 값 읽기 값 쓰기 어트리뷰트 재정의 객체 확장 금지 Object.preventExtensions X O O O O 객체 밀봉 Object.seal X X O O X 객체 동결 Object.freeze X X O X X Object.preventExtensions 프로퍼티 추가만 금지 const person = {name:'Lee'}; console.log(Object.isExtensible(person)); // false Object.preventExtensions(person);// 프로퍼티 추가만 금지된다. console.log(Object.isExtensible(person));// true person.age = 20; console.log(pers.. 2022. 10. 28. [JavaScript] 프로퍼티 어트리뷰트 , 프로퍼티 디스크립터 객체 자바스크립트 엔진은 프로퍼티를 생성할 때 프로퍼티의 상태를 나타내는 프로퍼티 어트리뷰트를 기본값으로 자동 정의한다. 프로퍼티 상태 프로퍼티의 값(value) 값의 갱신 가능 여부(writable) 열거 가능 여부(enumerable) 재정의 가능 여부(configurable) 을 말한다. 프로퍼티 어트리뷰트 프로퍼티 어트리뷰트는 자바스크립트 엔진이 관리하는 내부 상태값인 내부 슬롯 [[Value]], [[Writable]], [[Enumerable]], [[Configurable]] 이다. 직접 접근은 불가능하지만, Object.getOwnPropertyDescriptor 메서드 사용해 간접 확인 가능 const person = { name: 'Lee'}; console.log(Object.getOwnP.. 2022. 10. 28. [Javascript] 객체, 생성자 함수 숙지사항 객체 객체는 키와 값으로 구성된 프로퍼티의 집합이다. 당연히 null인 객체의 프로퍼티 참조 시 에러발생 for-in 객체의 문자열 키를 순회하기 위한 문법이다. 순서보장 x + 추가적인 프로퍼티까지 순회하기 때문에 배열에 사용 부적합 객체 순회 적합 for-of 위의 문제점 때문에 배열 순회 시 맞춤형 문법 만들어짐 순서보장 o + 배열 요소들만 순회함 배열 순회 적합 얕은 복사 객체의 복사는 참조이다. Object.assign(target, ...source) 얕은복사는 Object.assign(target, ... source)를 이용해 복사 가능 const original = {name: '철수', age: 12}; const clone = Object.assign({}, original); cl.. 2022. 10. 26. [Javascript] 타입 관련 예외사항 null의 타입 null의 타입은 object 타입이다. 자바스크립트 설계 오류이다. 따라서 null 타입 검사 시 typeof null을 하게되면 object로 나오게 됨 비교하려면 null === null로 비교해야함 심볼(Symbol) 타입 변경 불가능한 원시타입의 값이다. 이름의 충돌 위험이 없는 유일한 객체의 프로퍼티 키를 만들기 위해 사용됨 var key = simbol('key'); var obj = {}; obj[key] = 'value'; console.log(obj[key]);// 'value' 값에 의한 전달 방식 원시타입은 모두 값에 의한 전달 방식이다. 원시타입을 제외한 나머지 값들은 모두 객체이고, 객체는 참조에 의한 전달 방식을 사용한다. 변수 중복 선언 var 키워드로 선언한.. 2022. 10. 26. [JavaScript] node.js node.js 자바스크립트엔진으로 빌드된 자바스크립트 런타임 환경이다. 자바스크립트 프로그램을 컴퓨터에서 실행할 수 있게 하는 자바스크립트 실행기 서버사이드 스크립트 언어가 아니라 프로그램(환경)이다. 웹 서버와 같이 확장성 있는 네트워크 프로그램 제작을 위해 만들어짐 javascript를 웹브라우저에서 독립된 터미널에서 브라우저 없이 실행가능 백엔드 영역의 서버app 뿐 아니라 프런트엔드의 다양한 도구,라이브러리도 node에서 동작 프런트엔드 모던 자바스크립트 개발에 필수적인 환경이다. 이전엔 웹 표시부분은 javascript, 서버는 ruby, java등 사용했어야 했는데 node를 이용해 한가지 언어로 전체 웹 페이지 구성 가능하다. 특징 non-blocking I/O 단일 스레드 이벤트 루프 위의.. 2022. 10. 26. 이전 1 다음