JavaScript

22.1 this 키워드 객체는 상태를 나타내는 프로퍼티와 동작을 나타내는 메서드를 하나의 논리적인 단위로 묶은 복합적 자료구조이다. 메서드는 자신이 속한 객체의 프로퍼티를 참조/변경할 수 있어야 한다. 이때 자신이 속한 객체를 가리키는 식별자를 참조할 수 있어야 한다. 객체 리터럴 방식으로 정의된 객체는 재귀적으로 자신이 속한 객체를 가리킬 수 있다. const circle = { radius: 5, getDiameter() { // 해당 메서드가 속한 객체의 프로퍼티나 다른 메서드를 참조하려면 // 자신이 속한 객체인 circle을 참조할 수 있어야 한다. return 2 * circle.radius; } } 위의 예제의 객체 리터럴은 circle 변수에 할당되기 직전에 평가되어 getDiameter..
21.1 자바스크립프 객체의 분류 JS 객체는 크게 3개의 객체로 분류할 수 있다. 표준 빌트인 객체 표준 빌트인 객체는 ECMAScript 사양에 정의된 객체를 말하며 JS 실행환경(브라우저 혹은 Node.js)과 관계없이 언제나 사용할 수 있다. 호스트 객체 ECMAScript 사양에 정의되어 있지 않고 JS 실행 환경에서 추가로 제공하는 객체 DOM, fetch, Canvas, Web Storage와 같은 클라이언트 사이트 Web API와 Node.js 고유의 API 호스트 객체를 제공. 사용자 정의 객체 사용자가 직접 정의한 객체 21.2 표준 빌트인 객체 JS는 Object, String, Number, Boolean, Symbol, Date, Math, RegExp, Array, Map/Set..
19.7 프로토타입 체인 자바스크립트는 객체의 프로퍼티(메서드 포함)에 접근할 때 해당 객체에 접근하려는 프로퍼티가 없다면 [[Prototype]] 내부 슬릇의 참조를 따라 자신의 부모 역할을 하는 프로토타입의 프로퍼티를 순차적으로 검색한다. 이를 프로토타입 체인이라 한다. 그렇다면 아래의 코드를 확인하자 function Person(name) { this.name = name; } // 프로토타입 메서드 Person.prototype.sayHello = function () { console.log(`Hi! My name is ${this.name}`); }; const me = new Person('Juhyeon'); // hasOwnProperty는 Object.prototype의 메서드다. con..
Javascript는 명령형, 함수형, 프로토타입 기반 객체지향 프로그래밍을 지원하는 멀티 패러다임 언어다. Javascript는 객체기반의 프로그래밍 언어이며, Javascript를 이루고 있는 거의 모든 것이 객체다. 원시 타입의 값을 제외한 나머지 값들(함수, 배열, 정규 표현식등)은 모두 객체다. 19.1 객체지향 프로그래밍 객체지향 프로그래밍은 프로그램을 여러 개의 독립적 단위인 객체의 집합으로 프로그램을 표현하려는 프로그래밍 패러다임을 의미한다. 객체지향 프로그래밍은 실체를 인식하는 철학적 사고를 프로그래밍에 접목하려는 시도에서 시작한다. 실체를 인식하거나 구별할 수 있는 속성을 갖는다. 다양한 속성 중에서 프로그램에 필요한 속성만 간추려 내어 표현하는 것을 추상화라 한다. // 실체의 특성을..
1. 일급 객체 일급 객체란 다음 조건을 만족하는 객체를 의미한다. 무명의 리터럴로 생성할 수 있다. => 런타임에 생성이 가능 변수나 자료구조(객체, 배열 등)에 저장할 수 있다. 함수의 매개변수에 사용할 수 있다. 함수의 반환값으로 사용할 수 있다. // 1, 2번 조건 const increase = (num) => { return ++num; }; const decrease = (num) => { return --num; }; // 2번 조건 const auxs = { yes: () => { console.log('yes') }, increase, decrease } // 3, 4번 조건 const makeCounter = (increase) => { let num = 0; return () => ..
1 - var 키워드로 선언한 변수의 문제점 var는 JS만의 특이한 특징을 갖고 있어 사용하는데 주의를 요구하는 키워드이다. 이를 무시하고 무분별하게 사용하게 되면 아래와 같은 문제가 발생할 수 있다. 1-1. 변수 중복 선언 허용 var 키워드를 이용해 변수를 중복 선언하면 초기화문의 유무로 다르게 동작한다. 초기화문이 있는 경우는 선언문은 자바스크립트 엔진에 의해 var 키워드가 없는 것처럼 동작한다. 초기화문이 없는 경우는 변수 선언문은 무시된다. 변수를 중복 선언하게 되면 의도치 않게 먼저 선언한 변수의 값이 변경될 수 있는 문제가 발생한다. 1-2. 함수 레벨 스코프 var 키워드로 변수를 선언하면 오직 함수의 블럭만을 지역 스코프로 인정한다. 이것은 함수 이외의 다른 블럭(조건문 등 {}로 ..
58청춘
'JavaScript' 카테고리의 글 목록