함수의 구분 ES6 이전의 자바스크립트 함수는 사용 목적에 따라 명확히 구분되지 않는다. 다시말해 callable이면서 constructor이다. 이는 실수를 유발시킬 수 있으며 성능 면에서도 손해다. var foo = function () { return 1; } // 일반적인 함수로서 호출 foo(...
Javascript 클래스_02
클래스의 인스턴스 생성과정 new 연사자와 함께 클래스를 호출하면 다음과 같은 과정을 거쳐 인스턴스가 생성된다. 1. 인스턴스 생성과 this 바인딩 new 연산자와 함께 클래스를 호출하면 constructor 내부 코드가 실행되기 앞서 암묵적으로 빈 객체가 생성된다. 이 빈 객체가 바로 클래스가 생성한 인스턴스이다. 이때 클래스가 생성한 인스턴...
Javascript 클래스_01
1. Javascript에서의 클래스 자바스크립트는 프로토타입 기반 객체지향 언어이다. ES5에서는 클래스 없이도 생성자 함수와 프로토타입을 통해 객체지향 언어의 상속을 구현할 수 있다. // ES5 생성자 함수 var Person = (function () { // 생성자 함수 function Pers...
배송 API 테스트
오늘은 택배 배송조회를 이야기 하려한다. 회사에서 준비 중인 서비스에서 택배 배송조회를 구현해야 해서 택배 배송조회에 대해서 알아보고 직접 API 테스트를 간단히 해보았다. 테스트 코드는 HTML, AJAX를 통해서 구현했다. API 서버로 https://tracker.delivery/guide 이 곳을 이용했다. <!DOCTYPE html...
Javascript 클로저
MDN에서는 클로저에 대해 다음과 같이 정의하고 있다. “A closure is the combination of a function and the lexical environment within which that function was declared.” 핵심 키워드는 함수가 선언된 렉시컬 환경이다. 렉시컬 스코프 자바스크립트 엔진은...
Javascript this
객체는 상태(state)를 나타내는 프로퍼티와 동작(behavior)을 나타내는 메서드를 하나의 논리적인 단위로 묶은 복합적인 자료구조이다. 동작을 나타내는 메서드는 자신이 속한 객체의 상태, 즉 프로퍼티를 참조하고 변경할 수 있어야 한다. 이때 메서드가 자신이 속한 객체의 프로퍼티를 참조하려면 먼저 자신이 속한 객체를 가리키는 식별자를 참조할 수 있...
Javascript 빌트인 객체
자바스크립트 객체 분류 표준 빌트인 객체 : ECMAScript 사양에 정의되어 있는 객체로, 자바스크립트 실행환경과 관계없이 언제나 사용할 수 있다. 표준 빌트인 객체는 전역 객체의 프로퍼티로 제공되어 별도의 선언 없이 전역 변수처럼 사용이 가능하다. 호스트 객체 : 자바스크립트 실행 환경(...
Javascript 일급 객체
일급 객체 일급 객체는 다음 조건을 만족하는 객체를 말한다. 무명의 리터럴로 생성할 수 있다. 즉, 런타임에 생성이 가능하다. 변수나 자료구조에 저장할 수 있다. 함수의 매개변수에 전달할 수 있다. 함수의 반환값으로 사용할 수 있다. ...
Javascript 생성자 함수
자바스크립트에서는 객체를 생성하는 다양한 방법을 제공한다. 객체를 생성할 때 객체 리터럴을 통해 생성하는 것이 일반적이지만 생성자 함수를 통해 객체를 생성하는 방법도 있다. // 빈 객체 생성 const person = new Object(); // 프로퍼티 추가 person.name = 'Lee'; perso...
Javascript 스코프
스코프란? 모든 식별자는 자신이 선언된 위치에 의해 다른 코드가 식별자 자신을 참조할 수 있는 유효 범위가 결정된다. 스코프는 식별자가 유효한 범위를 말한다. 자바스크립트 엔진은 스코프를 통해 어떤 변수를 참조해야 할 것인지 코드의 문맥을 고려하여 결정한다. var x = 'global'; function foo() { ...