저번 좋은 성능과 가독성을 위한 if-else문에 대해 포스팅 하던 중 일급 객체에 대해서 설명을 한 부분이 있는데, 모든 일급 객체에는 다른 함수의 리턴값으로 사용할 수 있어야한다는 부분이 있었다. 자바스크립트에서는 커링을 통해 함수의 리턴값을 호출할 수 있었는데, 그럼 커링이 뭐길래 그게 가능한건지 알아보기로 하였다. 좋은 성능과 가독성을 위한 if-else 문 (2) 더 좋은 성능과 가독성을 위한 if-else문을 작성할 수 있는 방법 4가지 중에 남은 2가지를 마저 작성해보자. 두가지의 방법을 먼저 작성했던 첫번째 포스팅 다음으로 남은 두가지의 방법을 알아보 jhbljs92.tistory.com 커링이라는 단어는 사실 어디서 많이 주워듣긴 했었다. 하지만 정확한 정의와 왜 사용하는지를 정확하게 알..
더 좋은 성능과 가독성을 위한 if-else문을 작성할 수 있는 방법 4가지 중에 남은 2가지를 마저 작성해보자. 두가지의 방법을 먼저 작성했던 첫번째 포스팅 다음으로 남은 두가지의 방법을 알아보고 포스팅을 해보려한다. 좋은 성능과 가독성을 위한 if-else 문 (1) 본론으로 들어가기 앞서서 제어문에 대해서 알아보자. 제어문 (control flow statements) 프로그램의 순차적인 흐름을 제어해야 할 때 사용하는 실행문을 제어문이라고 한다. 제어문에는 조건문, 반복 jhbljs92.tistory.com 1, 2번의 방법은 위에 올려놓은 이전의 포스팅에 올려놓았기 때문에 이번 글은 3번부터 시작하겠습니다잉 먼저, 오늘의 두가지 방법을 알기 위해서는 자바스크립트의 일급 객체에 대해서 간단하게라도..
본론으로 들어가기 앞서서 제어문에 대해서 알아보자. 제어문 (control flow statements) 프로그램의 순차적인 흐름을 제어해야 할 때 사용하는 실행문을 제어문이라고 한다. 제어문에는 조건문, 반복문 등이 포함된다. 우리는 코드를 작성할 때 제어문을 상당히 많이 사용한다. 그 중에서 다양한 조건을 설정할 수 있도록 if-else 문을 중첩하여 사용할 일이 아주 많다. 자주 사용하는 만큼 제대로 알고, 좋은 성능과 가독성을 챙기면 더욱 좋겠다 생각하여 if-else문을 더욱 좋은 성능과 가독성을 얻을 수 있는 코드작성 방법을 포스팅해본다. 총 4가지의 방법을 알아보려하는데 2개의 포스팅으로 나누어서 작성하려고 한다. 이유는 내 머리에 다 안들어오기 때문임. 조건문의 성능과 가독성을 위한 포스팅..
전 포스팅으로 비동기, 동기를 알아보았다. 이제 콜백과 왜 프로미스, async/await을 사용하는지 알아보도록 하자 13. 동기와 비동기, 블로킹과 논블로킹 블로킹 이라는 말을 처음 들었을때, 대충 추상적으로 아 다른 함수가 실행중일때 다른 함수를 실행못하게 막는건가...?? 라고 막연하게 생각했었는데 이번에 동기님들의 스터디 발표와 여러 참 jhbljs92.tistory.com ☎️ 콜백(callback)이란?? 콜백이란 함수(A)의 전달인자(argument)로 넘겨주는 함수(B)를 말한다. 매개변수를 넘겨 받은 함수(A)는 callback함수(B)를 필요에 따라 즉시 실행(동기, synchronously)할 수도 있고, 나중에 실행(비동기, asynchronously)할 수도 있다. 쉽게 이해하기..
블로킹 이라는 말을 처음 들었을때, 대충 추상적으로 아 다른 함수가 실행중일때 다른 함수를 실행못하게 막는건가...?? 라고 막연하게 생각했었는데 이번에 동기님들의 스터디 발표와 여러 참고자료를 보고 정리를 해보려고한다. 동기(Synchronous) 와 비동기(Asynchronous) 의 차이부터 알아보자. 먼저, 동기와 비동기의 실행방법과 나눠진 이유를 알아보려면 스레드(Thread)라는 것을 알아야한다. 자바스크립트는 싱글 스레드(Single Thread) 언어라고 불린다. 스레드 - 프로세스 내에서 실행되는 흐름의 최소 단위 즉, 쉽게말해 프로세스 내에서 실제 작업을 하고있는 주체라고 생각하면 된다. 그리고, 스레드는 자신만의 프로그램 카운터와 시스템 레지스터, 스택을 가진다. 따라서, 자바스크립트..
프로토타입 #1 에 이어서 정리를 하려한다. 함수 객체의 Prototype 프로퍼티 함수 객체만이 소유하는 prototype 프로퍼티는 생성자 함수가 생성할 인스턴스의 프로토타입을 가리킴. 생성자 함수로서 호출할 수 없는 함수, 즉 non-constructor 인 화살표함수, ES6 메서드 축약표현으로 정의한 메서드는 prototype프로퍼티를 소유하지 않으며 프로토타입도 생성하지 않음 생성자 함수로 호출하기 위해 정의하지 않은 일반 함수(함수 선언문, 함수 표현식)도 prototype 프로퍼티를 소유하지만 객체를 생성하지 않는 일반 함수의 prototype 프로퍼티는 의미가없다. 모든객체가 가지고있는 __proto__ 접근자 프로퍼티와 함수 객체만이 가지고 있는 prototype 프로퍼티는 결국 동일한..
프로토타입... 부트캠프 동기분들 사이에서 악명높기로 소문난 녀석... 저도 처음으로 맛보려고합니다 프로토타입?? 자바스크립트는 프로토타입 기반언어라고 불린다. 이유는 모든 객체들이 메소드와 속성들을 상속받기 위한 템플릿으로써 프로토타입 객체(prototype object)를 가진다는 의미. 사실, 상속되는 속성과 메소드들은 각 객체가 아니라 객체의 생성자의 prototype이라는 속성에 정의되어 있다. 자바스크립트는 프로토타입을 기반으로 상속을 구현하여 불필요한 중복을 제거. 중복을 제거하는 방법은 기존의 코드를 적극적으로 재사용하는 것 예제를 보며 살펴보자 위의 예제의 생성자함수는 문제가 있다 무슨문제일까!?? radius 프로퍼티 값은 일반적으로 인스턴스마다 다르다. 하지만 getArea 메서드는 ..
자바스크립트는 객체 기반의 프로그래밍 언어이며, 자바스크립트를 이루고 있는 거의 '모든 것'이 객체다. 그말은 즉, 원시타입의 값을 제외한 나머지 값들(함수, 배열, 정규 표현식 등)은 모두 객체 객체는 상태 데이터와 동작을 하나의 논리적인 단위로 묶은 복합적인 자료구조 이때 객체의 상태 데이터를 프로퍼티, 동작을 메서드라고 부른다 객체지향 프로그래밍 객체지향 프로그래밍의 정의는 이러하다. 객체 지향 프로그래밍은 컴퓨터 프로그래밍 패러다임 중 하나로, 프로그래밍에서 필요한 데이터를 추상화시켜 상태와 행위를 가진 객체를 만들고 그 객체들 간의 유기적인 상호작용을 통해 로직을 구성 그래서 뭐라고...?? 뭐해서 뭐하다고? 쉽게 설명 해.줘. 일단 단어부터 바꿔보자 객체는 너무 어려운말이다. 객체를 "사물" ..