자바스크립트

    Promise

    Promise

    Promise는 비동기적인 코드를 처리할 때, 도움이 되는 개념이다. 콜백 지옥 맨 처음, Promise라는 개념이 없었을 때는 비동기 흐름을 callback 함수를 이용하여 제어했다. callback 함수를 많이 쓰면 쓰게 될수록, 코드가 복잡해지고 가독성이 떨어지는 단점이 있다. 이를 '콜백 지옥'이라고 한다. 아래 코드는 주식을 구매하는 코드를 구현해본 것이다. 보통의 코드는 동기적으로 실행된다. 그래서 콜백 함수를 덕지덕지 써야할 일이 없다. 우리는 콜백 지옥을 체험해보기 위해, 코드의 각 단계가 비동기적으로 실행된다고 생각해보자. 예를 들어 주식의 가격을 가져오는 코드가 비동기적으로 실행되고, 그 다음 주식의 가격을 달러에서 원화로 나타내는 코드가 비동기적으로 실행되고.. 이렇게 비동기적으로 실..

    prototype - prototype 체인, Behavier Delegation(작동 위임)

    prototype - prototype 체인, Behavier Delegation(작동 위임)

    이전 글: prototype - prototype, instance와 __proto__의 상관관계 https://tadactadac.tistory.com/entry/prototype prototype - prototype, instance와 __proto__의 상관관계 자바스크립트는 프로토타입 기반 언어이다. 프로토타입이 엄청 중요하다는 얘기다. 여타 클래스 기반의 언어들은 '상속'이라는 개념을 사용하는 것에 비해, 자바스크립트는 '상속'이 이루어지 tadactadac.tistory.com 프로토타입 체인 스코프에 스코프 체인이 있듯이, 프로토타입에도 프로토타입 체인이라는 것이 있다. const Cup = function (use) { this.use = use; }; Cup.prototype.getUs..

    prototype - prototype, instance와 __proto__의 상관관계

    prototype - prototype, instance와 __proto__의 상관관계

    자바스크립트는 프로토타입 기반 언어이다. 프로토타입이 엄청 중요하다는 얘기다. 여타 클래스 기반의 언어들은 '상속'이라는 개념을 사용하는 것에 비해, 자바스크립트는 '상속'이 이루어지지는 않는다. 대신 프로토타입으로 상속 비스무리한 것을 할 수가 있다. 프로토타입은 자바스크립트라는 언어를 이해하는데 가장 기본이 되는 개념이다. 자바스크립트를 잘 아는 사람이라면 기본적으로 알아야할 심화 개념 중 하나(프로토타입, 클로저, 비동기 등)이므로, JS를 잘 알고 싶은 사람이라면 배워두는 것이 좋다. prototype 모든 함수에는 프로토타입이라고 하는 프로퍼티가 있다. anyFunc라는 함수를 하나 만들고, 함수의 prototype 프로퍼티를 출력했더니 어떤 객체 하나를 출력했다. 뭔가 이상한 점이 하나 있었다..

    Closure - Closure의 활용(정보 은닉, 부분 적용 함수, 커링 함수)

    Closure - Closure의 의미, 발생하는 과정, 가비지 컬렉션(GC) https://tadactadac.tistory.com/entry/Closure-1 Closure - Closure의 의미, 발생하는 과정, 가비지 컬렉션(GC) 자바스크립트에서 Closure(클로저)란 아주 중요한 개념이다. Clousure란? Closure를 알든 아니면 그렇지 않든 간에, 지금도 자바스크립트를 짜는 많은 코드들에서 클로저가 생겨나고 있다. 클로저란 어 tadactadac.tistory.com 지난 Closure 포스트에서는 Closure의 의미와 생성에 대해서 알아보았다. 그러면은 이 클로저를 어떻게 활용할 수 있을 지 알아보자. 클로저는 여기서 설명한 것 이외에도, 코드의 많은 부분에서 활용할 수가 있다..

    this - 함수의 실행 방식에 따른 의미 차이

    자바스크립트에서 this는 조금 복잡해보이지만, 아주 재미있는 키워드이다. 모든 함수에서는 this라는 키워드를 사용할 수가 있다. https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Operators/this this - JavaScript | MDN JavaScript에서 함수의 this 키워드는 다른 언어와 조금 다르게 동작합니다. 또한 엄격 모드와 비엄격 모드에서도 일부 차이가 있습니다. developer.mozilla.org this란? this의 의미는 실행하는 여러 환경에 따라 그 의미가 달라진다. 여러 상황에서의 다양한 this의 의미를 파악하는 것이 상당히 중요하다. this라는 키워드는, '나'라는 말과 상당히 비슷한 점이 많..

    Closure - Closure의 의미, 발생하는 과정, 가비지 컬렉션(GC)

    자바스크립트에서 Closure(클로저)란 아주 중요한 개념이다. Clousure란? Closure를 알든 아니면 그렇지 않든 간에, 지금도 자바스크립트를 짜는 많은 코드들에서 클로저가 생겨나고 있다. 클로저란 어떤 것일까. 우선 Closure란 말의 뜻을 살펴보면, 폐쇄라는 의미가 있다고 한다. close라는 단어에 ‘닫다'라는 의미가 있는 것과 연관이 있는 듯하다. 자바스크립트에서 Closure란, ‘함수가 선언 될 당시 주변 환경과 함께 갇히는 것’이라고 한다. 이렇게 표현해도 조금 알쏭달쏭하다. 사실 Closure를 한 문장으로 간단하게 이해하기는 쉽지 않다. MDN에 클로저를 검색하면, 다음과 같은 해석을 해준다. https://developer.mozilla.org/ko/docs/Web/Java..