JS

    [JS] Javascript에서의 Closures

    클로저란 클로저는 외부 함수에서 선언된 변수를 참조하는 내부 함수에서만 발생하는 현상이다. MDN에선 클로저를 "함수와 그 함수가 선언된 Lexical Environment의 조합"라 정의한다. Lexical Environment는 함수가 선언될 당시의 모든 지역 변수를 포함한다. 선언된 당시의 Lexical Environment이란 실행 컨텍스트의 구성 요소 중 하나인 outerEnvironmentReference를 포함하여 변수의 유효 범위(스코프)를 결정하고 스코프 체인을 형성하는 데 영향을 끼친다. JavaScript에서 클로저는 함수 생성 시 함수가 생성될 때마다 생성된다. 클로저의 범위 클로저는 어휘적 범위 지정, 즉 함수가 선언될 때의 변수 범위에 바인딩되는 특성을 가지고 있다. 예를 들어,..

    [JS] Javascript에서의 this

    서론  다른 객체지향 언어들과는 달리, 자바스크립트에서 this는 클래스 외에도 다양한 상황에서 사용된다. 이는 때로는 혼란을 야기할 수 있다. this는 기본적으로 실행 컨텍스트가 만들어질 때 결정되며, 함수 호출 시에 결정된다. 실행 중에는 이를 할당으로 변경할 수 없다.다양한 상황에서의 this전역 문맥  전역 공간에서 this는 전역 객체를 가르킨다. 예를 들어, 브라우저에서는 window, Node.js에서는 global이 전역 객체가 된다. 전역 공간에서 변수 a에 1을 할당하면 window.a와 this.a 모두 1이 출력된다. 이는 전역 변수가 사실 전역 객체의 프로퍼티로 동작하기 때문이다.var a = 1;console.log(a); // 1console.log(window.a); // ..

    [JS] 반복문 대신 고차함수를 쓰는 이유

    서론 처음 자바스크립트에 입문할 때는 파이썬에서 했던 것처럼 반복문을 주로 썼었다. 그러다 다른 사람들의 코드를 보며 반복문이 거의 존재하지 않고 대신 map, filter, reduce같은 고차함수를 주로 사용함을 알 수 있었다. 이 글에서는 자바스크립트에서 반복문 대신 고차함수를 써야하는 이유에 대해 알아보고자 한다.고차함수란 고차 함수는 다른 함수를 매개변수로 받거나 함수를 결과로 반환하는 함수이다. 고차 함수는 수학에서 쓰이는 개념이며 자바스크립트에서 고차함수에는 map, reduce, filter같은 함수가 있다. 자바스크립트에서 함수는 일급 객체로 변수에 할당되고 인수에 전달될 수 있고 다른 함수들의 return값으로 쓰일 수 있다. 고차함수는 외부 상태의 변경이나 가변 데이터를 피하고, 불변..

    [JS] 클린코드를 위해 반복문과 조건문 줄이기(feat: 들여쓰기)

    서론 JavaScript에서 클린 코드를 작성하는 것은 코드의 가독성과 유지 보수성을 높이는 데 중요한 역할을 한다. 특히 반복문과 조건문을 줄이고, 들여쓰기를 최소화하는 것은 코드의 복잡성을 줄이는 데 매우 중요하다. 반복문과 조건문을 무조건 쓰지 말아야하는 것은 아니지만 적절하게 대체하면 코드의 가독성과 유지 보수성을 높일수 있기에 이 글에서는 해당 목적을 달성하는 방법에 대해 알아보고자 한다. 조건문 간소화하기객체 Mapping 사용하기 조건이 한 두개일 때는 괜찮으나 조건이 여러개로 분기하게 되면 코드의 길이가 상당히 길어지는 것을 느낄 수 있다. 이럴때 조건문을 줄이는 한 가지 방법은 객체 mapping을 사용하는 것이다. 예를 들어, 여러 조건에 따라 다른 행동을 해야 할 때, 각 조건을 객체..

    API 응답과 빈 값: HTTP 상태 코드 200과 204 그리고 404 간의 선택

    API 응답과 빈 값: HTTP 상태 코드 200과 204 그리고 404 간의 선택

    Introduction 개인 프로젝트 진행 중 db를 사용하고 rest api를 만들어 사용할 일이 있었다. 그러던 중 api가 빈 값을 반환할 때가 있는데 이때 상태 코드를 200, 204 그리고 400중에 무엇을 반환해야 할지 고민이 있었다. 왜냐하면 빈 값을 반환한다는 건 통신은 올바르게 이루어졌지만, 원하던 값을 받아오지는 못했기 때문이다.  http 상태 코드를 올바르게 작성하는 것은 중요하다고 생각하는데 왜냐하면 서버의 응답에 따라 클라이언트는 통신이 어떻게 이루어졌는지 판단하기 때문이다. 이 글에선 서버가 빈 리스트나 존재하지 않는 리소스를 반환할 때, 어떤 상태 코드가 가장 적절한지에 대해 알아보겠다.Preliminarieshttp status code HTTP 상태 코드는 서버 응답의 성..