[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() 함수는 시작 위치부터 해당 길이만큼 문자열을 자르는 기본적..
JavaScript 의 동작방식
2022. 11. 12. 18:56
프로그래밍 언어/JavaScript
살펴볼 내용 - 코드를 통해 알아보는 JavaScript 동작 방식 - JavaScript 런타임 환경 구성 JavaScript의 동작 방식(싱글 스레드, 콜스택) JavaScript 는 싱글 스레드 즉 단 하나의 스레드를 기반으로 한 프로그래밍 언어입니다. 싱글 스레드라는 말은 하나의 메인 스레드와 하나의 콜스택(호출 스택)을 가진다는 것입니다. 하나의 메인 스레드에서 호출되는 함수들은 하나의 콜스택에 쌓입니다. 이 함수들은 스택 구조 특성상 LIFO(Last In First Out) 방식으로 실행됩니다. 예시를 통해 알아보기 function a() { function b() { function c() { console.log("c"); } c(); console.log("b"); } b(); cons..
[JavaScript] 반복문
2022. 11. 5. 19:38
프로그래밍 언어/JavaScript
반복문이란? 일반명사) 되풀이하는 것 고유명사) 프로그램 소스 코드 내에서 조건을 만족할 때까지 특정한 부분의 코드가 반복적으로 수행될 수 있도록 하는 구문 반복문의 종류 for 문 for 문은 조건식이 거짓으로 판별될 때까지 코드 블록을 반복 실행한다. 문법 : for (초기화식; 조건식; 증감식) { // ... 조건식이 참인 경우 반복 실행될 코드 ... } 예시) for (let i = 0; i < 3; i++) { // 0, 1, 2 가 출력된다. console.log(i); } 초기화식 let i = 0 반복문에 진입할 때 단 한 번 실행됨. 조건식 i < 3 반복마다 해당 조건이 확인됨. false 이면 반복문을 멈춤. 본문 console.log(i) 조건이 true 일 동안 계속해서 실행된..
[JavaScript] 호이스팅
2022. 11. 5. 19:28
프로그래밍 언어/JavaScript
호이스팅이란? 일반명사) 끌어 올리기 고유명사) 선언한 위치와 상관없이 함수, 변수의 선언부를 인접한 스코프의 최상단으로 끌어올려 스코프 내 어디서든 해당 식별자를 관측할 수 있는 현상 호이스팅은 어떻게 발생하는가? 하지만 자바스크립트 엔진은 실제로 코드를 실행하는 시점에 함수, 변수의 선언부를 인접한 스코프의 최상단으로 끌어올릴 만한 능력이 없다. 단지 코드 실행 전에 어떤 과정을 거쳐서 변수, 함수에 대한 전체적인 정보를 미리 알고 있을 뿐이다. 여기서 말하는 어떤 과정이란 참고) 자바스크립트는 코드 실행 전 따로 컴파일 과정을 거친다. 컴파일 : 사람이 이해하는 언어로 이루어진 코드를 컴퓨터가 이해할 수 있도록 쪼개고, 체계적인 구조로 재가공하여 전체를 분석하는 일련의 과정 자바스크립트 엔진은 코드..
[JavaScript] 실행 컨텍스트
2022. 11. 5. 19:15
프로그래밍 언어/JavaScript
실행 컨텍스트(Execution Context) 란? 실행할 코드에 제공할 환경 정보들을 모아 놓은 객체이다. 전역 코드 : 전역 영역에 존재하는 코드 함수 코드 : 함수 영역에 존재하는 코드 일반적으로 실행할 코드는 전역 코드와 함수 내 코드이다. 자바스크립트 엔진이 코드를 실행하기 위해 필요한 모든 정보를 하나의 객체로 묶어 놓은 것이다. 실행 컨텍스트 생성 과정 1. 실행 컨텍스트 생성 2. 스코프 체인의 생성과 초기화 실행 컨텍스트가 생성된 이후 가장 먼저 스코프 체인의 생성과 초기화가 실행된다. 이때 스코프 체인은 전역 객체의 레퍼런스를 포함하는 리스트가 된다. 3. 변수 객체화 실행 스코프 체인의 생성과 초기화가 종료하면 변수 객체화가 실행된다. 변수 객체화는 변수 객체에 변수, 매개변수와 인..