[JavaScript] require/exports 와 import/export 차이
2023. 1. 29. 14:48
Today I learned
require/exports require/exports 방식은 기존에 Node.js 에서 사용되던 CommonJS 모듈 방식으로, module.exports 객체에 모듈 전체를 담아 내보내고 require를 통해 해당 모듈을 불러오는 방식이다. 따라서 require를 사용하면 모듈 전체를 불러오게 되는데, 불필요한 모듈이 로드되기도 하고 어떤 부분을 모듈 내에서 사용했는지 알 수 없다. import/export import/export 방식은 ES6에 새로 등장한 ES 모듈 방식으로, import를 사용해 모듈을 가져온 뒤 만든 객체를 내보내기 위해 export를 사용하는 방식이다. 실제로 쓰이는 부분만 불러와 사용하기 때문에 메모리를 절약할 수 있다. export 를 사용하는 방식은 require와는..
[JavaScript] 커링
2023. 1. 12. 17:21
프로그래밍 언어/JavaScript
커링이란? 커링이란 f(a, b, c) 를 f(a)(b)(c) 와 같이 여러 개의 인수를 단일 프로세스로, 호출 가능한 함수를 다중 프로세스 형태로 변환할 수 있도록 하는 기술이다. 보통 자바스크립트에서 커링되어진 함수는 평소처럼 호출도 하고 만약에 인수들이 충분하지 않을 때는 partial 을 반환한다. 커링은 partial 을 쉽게 적용할 수 있도록 해준다. 커링을 사용하는 이유? 커링 함수를 사용하는 이유는 함수가 여러 개의 인자를 받을 때 특정 인자를 고정할 수 있습니다. 그로 인해 함수의 재사용성을 높일 수 있습니다. // 커링을 사용한 함수 const currying = a => b => c => a * b * c; console.log(currying(1)(2)(3)); // 6 // 인수 ..
[JavaScript] iterable 객체
2023. 1. 11. 14:06
프로그래밍 언어/JavaScript
들어가며 JavaScript 에서 Array 가 제공하는 map, filter, reduce 등의 메서드를 직접 구현하는 과정에서 for ... of 문을 공통적으로 사용했다. for ... of 문으로 순회 가능하기 위해서는 반드시 해당 자료구조가 iterable 해야 한다는 것을 알게 되었다. 하지만 iterable 이 무엇이고 어떤 역할을 하는지 알지 못해 이번 시간을 통해 이에 대해 알아보고자 한다. ko.javascript.info 사이트에서 이에 대해 잘 설명해주고 있어 이 자료를 참고했다. iterable 객체란? iterable 객체란 반복 가능한 객체라고 부르기도 하며, for ... of 구문과 함께 ES2015에서 도입되었다. iterable 객체와 다른 객체와의 가장 큰 차이점은 객..
[JavaScript] 예시를 통해 알아보는 this
2022. 12. 28. 14:46
프로그래밍 언어/JavaScript
JavaScript에서 this 는 함수 호출 방법에 의해 결정된다. 예시1) 객체 메소드의 this const phone = { name: 'Galaxy Note 3', getName: function () { console.log("getName: ", this); }, } phone.getName(); // output: getName: {name: 'Galaxy Note 3', getName: f} getName 메소드의 호출자가 phone 객체이므로, getName 실행 시 this 는 phone 객체이다. 예시2) 전역 객체에서의 this const phone = { name: 'Galaxy Note 3', getName: function () { console.log("getName: ", ..
[JavaScript] 문자열 자르기 (substr, substring, slice)
2022. 12. 5. 15:02
프로그래밍 언어/JavaScript
들어가며 이번 게시글에서는 자바스크립트에서 문자열을 자르는 함수에 대해 알아보고자 합니다. 자바스크립트에서 문자열을 자르는 함수 자바스크립트에서 문자열을 자르기 위해서는 substr(), substring(), slice() 함수를 사용하면 됩니다. String.prototype.substr(start[, length]) String.prototype.substring(indexStart[, indexEnd]) String.prototype.slice(beginIndex[, endIndex]) 위 세 가지 함수의 인수 중 대괄호([]) 부분은 생략 가능하며, 생략할 경우 시작 위치부터 문자열 끝까지 자릅니다. substr() 함수 substr() 함수는 시작 위치부터 해당 길이만큼 문자열을 자르는 기본적..
스택(Stack)
2022. 11. 11. 12:42
컴퓨터 과학/자료구조
스택(Stack) - LIFO(Last In First Out) 으로 데이터를 저장하는 구조입니다. - 나중에 들어온 데이터가 먼저 나갑니다. - 주요 동작으로는 push, pop, peek 등이 있습니다. - push(데이터) : 스택에 데이터 추가 - pop() : 스택으로부터 최상단에 있는 데이터 제거 - peek() : 스택 최상단에 있는 데이터 값 반환 JavaScript 로 스택 구현(feat. Array) class Stack { constructor() { // item들을 받을 배열 생성 this.stack = []; } isEmpty() { return this.stack.length == 0; } push(item) { this.stack.push(item); } pop() { ret..