본문 바로가기

STUDY/javascript6

자바스크립트의 커링(Currying)에 대해서 알아보자 커링이란커링(Currying)은 함수형 프로그래밍에서 나오는 개념. 쉽게 말해서, 함수의 인자를 한 번에 다 받지 않고 나눠서 받게 만드는 과정. 원래 인자가 3개 들어가는 함수라면, 얘를 3단계로 나눠서 하나씩 받을 수 있게 만드는 거임. 한마디로, 함수가 함수(계속 다른 함수)를 반환하면서 인자를 조금씩 받아 나가는 형태 예시예를 들어, 숫자 두 개를 더하는 `add` 함수가 있다고 쳐보자. function add(a, b) { return a + b;}console.log(add(2, 3)); // 5이건 평범한 덧셈 함수. `add(2, 3)` 이렇게 호출하면 `5`라는 값이 바로 반환되지만 커링 형태로 바꾸면 어떤 느낌이냐면...function curriedAdd(a) { return fun.. 2024. 11. 4.
호이스팅(Hoisting)과 TDZ(Temporal Dead Zone) 자바스크립트는 변수 선언 방식에 따라 코드 실행 순서와 결과가 달라질 수 있다. 특히 호이스팅(Hoisting)과 TDZ(Temporal Dead Zone)개념을 정확히 이해하는 것은 중요하다. 호이스팅(Hoisting)이란?호이스팅은 자바스크립트의 독특한 동작 방식으로, 변수 선언이나 함수 선언이 해당 범위의 최상단으로 끌어올려지는 현상을 말한다. 즉, 변수가 코드에서 선언되기 전에 사용할 수 있는 것처럼 보이는 이유가 호이스팅 때문이다. 호이스팅은 변수 선언과 함수 선언 모두에 적용되지만, 그 방식은 다르다. console.log(x); // undefinedvar x = 5; 위 코드는 다음과 같이 해석된다:var x; // 선언이 최상단으로 끌어올려짐console.log(x); // undefin.. 2024. 10. 14.
[자바스크립트] 프로토타입 1. 프로토타입의 기본 개념자바스크립트는 프로토타입 기반 언어이다. 자바스크립트의 모든 객체는 자신의 부모 역할을 담당하는 객체와 연결되어 있다. 그리고 이것은 마치 객체 지향의 상속 개념과 같이 부모 객체의 프로퍼티 또는 메소드를 상속받아 사용할 수 있게 한다. 이러한 부모 객체를 Prototype(프로토타입) 객체 또는 줄여서 Prototype(프로토타입)이라 한다.2. 프로토타입 체인프로토타입 체인은 객체가 어떤 속성이나 메서드를 찾을 때, 그 객체가 가지고 있는지 확인하고, 없으면 프로토타입을 계속해서 탐색하는 방식이다. 이 체인을 통해 객체는 부모 객체의 속성과 메서드를 상속받아 사용할 수 있다.이 과정을 프로토타입을 상속받는 과정이라고 말한다.3. 예시프로토타입은 주로 생성자 함수나 클래스를 .. 2024. 9. 27.
[면접 질문] function Person(){}, var person = Person(), 그리고 var person = new Person()의 차이점? function Person(name) { this.name = name}var person = Person('John')console.log(person) // undefinedconsole.log(person.name) // Uncaught TypeError: Cannot read property 'name' of undefinedvar person = new Person('John')console.log(person) // Person { name: "John" }console.log(person.name) // "John" function Person(){}: 일반적인 함수 선언var person = Person(): 생성자가 아니라 Person을 함수로 호출, undefined가 반환var p.. 2024. 9. 25.