함수 커링이란함수 커링은 여러 인수를 한 번에 받는 함수를, 인수를 하나씩 순차적으로 받아 처리하는 함수들의 연쇄로 변환하는 기법입니다. 즉,f(a, b, c)를 f(a)(b)(c)와 같이 변환하는 것이 바로 커링입니다. 커링을 활용하면 부분 적용 (partial application) 이 가능해져, 일부 인수를 미리 고정한 새로운 함수를 쉽게 만들 수 있습니다.커링의 장점코드 재사용성 증가커링을 통해 기존 함수에서 특수화된 새 함수를 만들어 함수 재사용성을 높일 수 있습니다.코드 가독성 증가단순 이진 함수 커링하기// 이진 함수 (두 개의 인수를 받는 함수)를 커링합니다.function curryBinary(fn) { return function(a) { return function(b) { ..
eval의 기본 사용법eval은 전달된 문자열을 실행한 후, 마지막 표현식의 결과를 반환합니다.let result = eval('2 + 3 * 4');console.log(result); // 14위의 예에서 eval() 함수는 문자열 '2 + 3 * 4'를 JavaScript 코드로 평가하고 결과를 result 변수에 할당합니다.여러 줄의 코드도 실행할 수 있습니다let output = eval(` let x = 10; let y = 20; x + y;`);console.log(output); // 출력: 30문자열 내부에 포함된 코드가 현재의 렉시컬 환경에서 실행되므로, 외부 변수에 접근하거나 수정할 수 있습니다.eval의 렉시컬 환경eval은 기본적으로 현재 실행 중인 환경(스코프)에서 코드를..
Proxy 기본 문법JavaScript Proxy는 원본 객체에 대한 중개자 또는 래퍼 역할을 하는 특수 객체로, 대상 객체라고 합니다.Proxy는 두 개의 인수를 받습니다.target: 실제 동작을 수행할 원본 객체 (함수도 가능합니다).handler: target에 가해지는 작업을 가로채는 트랩 메서드들을 포함하는 객체입니다.const proxy = new Proxy(target, handler);handler 빈 객체 제공 Proxy빈 hanlder를 통해서 생성되었으므로 proxy를 통해 수행된 작업은 기본 동작을 변경하지 않고 target 객체에 직접 전달됩니다.const target = { message: "Hello, Proxy!" };const proxy = new Proxy(target,..
import() 표현식의 기본 개념정적 import 문을 사용하는 기존의 정적 가져오기와 달리 동적 가져오기는 import() 표현식을 활용하여 런타임에 모듈을 비동기적으로 로드합니다. 이 표현식은 함수 호출과 유사한 문법을 가지지만, 실제 함수 호출이 아니라 특별한 문법입니다.import(moduleSpecifier)는 모듈을 로드하고, 모듈의 모든 내보내진 기능이 담긴 객체를 반환하는 프라미스를 생성합니다.// math.jsexport function add(a, b) { return a + b;}export function subtract(a, b) { return a - b;}export default function multiply(a, b) { return a * b;}이제 main.js..
모듈 다양하게 내보내기선언부에 직접 export 사용하기함수, 클래스, 변수 선언 앞에 export를 붙이면 해당 선언이 바로 외부에 공개됩니다.// mathUtils.jsexport function add(a, b) { return a + b;}export const PI = 3.1415926535;export class Calculator { constructor() { this.value = 0; } add(num) { this.value += num; return this.value; }}선언 후 export 하기함수를 먼저 선언한 후, 마지막에 export 구문으로 내보낼 수도 있습니다.// stringUtils.jsfunction capitalize(str) { re..
모듈이란 무엇인가?모듈은 독립형 파일이며, 내부에 클래스, 함수, 변수 등 특정한 기능을 수행하는 코드 조각들을 포함합니다. 모듈은 자체 스코프를 가지므로, 파일 내에서 선언한 변수나 함수는 기본적으로 외부에서 접근할 수 없습니다. 외부에서 해당 기능을 사용하려면 export 지시어를 사용해 공개하고, 다른 모듈에서는 import 지시어로 가져와야 합니다.// sayHi.jsexport function sayHi(user) { return `Hello, ${user}!`;}// main.jsimport { sayHi } from './sayHi.js';console.log(sayHi('John')); // Hello, John!모듈의 특징엄격 모드 자동 적용JavaScript 모듈은 엄격 모드 ("us..