반응형

분류 전체보기 269

[JavaScript] 스터디 14일차_3강 this 와 화살표 함수

this와 화살표 함수(arrow function) ES6에서 도입된 화살표함수는 스스로의 this 바인딩을 제공하지 않는 화살표 함수를 추가했다. 나는 화살표 함수가 단순히 함수를 "짧게" 쓰기 위한 용도인 줄 알았는데, 화살표 함수와 this는 밀접한 관련이 있다. 화살표 함수는(arrow function expression)은 function 표현에 비해 구문이 짧고, 자신의 this, arguments, super 또는 new.taget을 바인딩하지 않는다. 화살표 함수는 항상 익명이다. 이 함수 표현은 메소드 함수가 아닌 곳에 가장 적합하다. 그래서 생성자로 사용할 수 없다. (mdn) 여기서 우리는 화살표 함수의 arguments와 super, new.target을 바인딩하는 것은 다음에 알아..

[TIL] 210722 오늘 공부는 함수형 프로그래밍

객체형 프로그래밍은 자바스크립트를 공부하면서 조금씩은 봤지만, 함수형 프로그래밍은 자세히 공부한적이 없었다. 비교 영상이나 글은 많이 보았지만, 함수형 프로그래밍의 특성만 조금 더 자세히 알고 싶어서 오늘은 함수형 프로그래밍으로 정했다. 프로그래밍 패러다임? 프로그래머에게 프로그래밍의 관점을 갖게하고 코드를 어떻게 작성할 지 결정하는 역할을 한다. 새로운 프로그래밍 패러다임을 통해서는 새로운 방식으로 생각하는 법을 배우고, 이를 바탕으로 코드를 작성한다. 크게 2가지로 구분한다. 1) 명령형 프로그래밍 - 무엇을 할것인지(What) 나타내기보다는 어떻게 할건지(How)를 설명하는 방식 절차지향 프로그래밍: 수행되어야 할 순차적인 처리 과정을 포함하는 방식(C, C++) 객체지향 프로그래밍: 객체들의 집합..

개발일지/TIL 2021.07.22

[TIL] 210721 오늘 공부는 실행 컨텍스트 + 호이스팅 + 콜스택

자바스크립트 스터디를 위한 자료 준비. 이번 챕터는 실행 컨텍스트 중에서 생성 과정에 대해 공부했다. 실행 컨텍스트가 실행할 코드에 대한 환경 정보들을 모아놓은 객체라는 말이 와닿지 않았는데, 콜스택을 직접 그려보면서, 표로 EC(creation phase와 execution phase)에 뭐가 담기는지 그려보니, 식별자(변수 등) 및 this 등이 EC에 담기는구나를 알 수 있었다. 그리고 자바스크립트의 콜스택은 실행 컨텍스트가 어떻게 담기는지, 자료 구조상 함수가 쌓이고 가장 top에 있는 코드부터 실행되고, 결국 전역 컨텍스트가 사라지면서 어플리케이션이 종료되는 과정까지 그림으로 그려보았다. 호이스팅은 var의 선언부과 함수 선언식을 통째로 끌어올리는 것이다. 함수의 실행 컨텍스트가 생성되는 생성단..

개발일지/TIL 2021.07.22

[JavaScript] 스터디 13일차_ 2강_실행컨텍스트와 콜스택

실행컨텍스트(EC)는 자바스크립트 코드가 실행되는 환경을 의미한다. 크게 2가지 타입의 EC가 있다. 1) Global Execution context - 자바스크립트 엔진이 처음 코드를 실행할 때 Global Execution context 가 생성이 된다. 생성 과정에서 전역객체인 Window Object를 생성하고, this는 Window 객체를 가리킨다. 즉, 아무런 코드가 없어도 자바스크립트 엔진은 파일을 실행시키는 시점에서 Global Execution context를 생성한다. 2) Function Execution context - 자바스크립트 엔진은 함수가 호출 될 때마다 호출된 함수를 위한 Execution Context를 생성한다. 모든 함수는 호출되는 시점에 자신만의 Executio..

[TIL] 210720 오늘 공부는 ES6의 비구조화 할당(Destructuring Assignment)

ES6에 새로 도입된 여러가지 문법이 있다. 그 중 익숙한 let, const, spread operator 같은 것들 외에, 처음 들어본 비구조화 할당 개념에 대해 공부했다. 비구조화 할당은 뭔가 번역이 어색하지만(?) 정의는 이렇다. 배열이나 객체의 속성을 해체하여 그 값을 개별 변수에 담을 수 있게 하는 자바스크립트 표현식이다. 배열에서는 이렇게 사용할 수 있다. ES5에서, vegetable 이라는 배열의 값을 각각 변수에 할당해주었다. const vegetable = ["onion", "mushroom", "pepper", "cabbage","potato"]; let yangpa = vegetable[0]; let baechu = vegetable[3]; let gochu = vegetable[..

개발일지/TIL 2021.07.21

[JS] 알고리즘 기초 정복 5-6번_학급 회장(해쉬)

문제 5-6번 학급 회장을 뽑는데 후보로 기호 A, B, C, D, E 후보가 등록을 했습니다. 투표용지에는 반 학생들이 자기가 선택한 후보의 기호(알파벳)가 쓰여져 있으며 선생님은 그 기호를 발표하고 있습니다. 선생님의 발표가 끝난 후 어떤 기호의 후보가 학급 회장이 되었는지 출력하는 프로그램을 작 성하세요. 반드시 한 명의 학급회장이 선출되도록 투표결과가 나왔다고 가정합니다. 🍄 입력설명 첫 줄에는 반 학생수 N(5

알고리즘 2021.07.20

[JS] 알고리즘 기초 정복 5-5번_최대 매출

문제 5-5번 현수의 아빠는 제과점을 운영합니다. 현수 아빠는 현수에게 N일 동안의 매출기록을 주고 연속 된 K일 동안의 최대 매출액이 얼마인지 구하라고 했습니다. 만약 N=10이고 10일 간의 매출기록이 아래와 같습니다. 이때 K=3이면 12 15 11 20 25 10 20 19 13 15 연속된 3일간의 최대 매출액은 11+20+25=56만원입니다. 여러분이 현수를 도와주세요. 🍄 입력설명 첫 줄에 N(5

알고리즘 2021.07.20

[JS] 알고리즘 기초 정복 5-4번_연속 부분수열 2

문제 5-4번 N개의 수로 이루어진 수열이 주어집니다. 이 수열에서 연속부분수열의 합이 특정숫자 M이하가 되는 경우가 몇 번 있는지 구하는 프로그 램을 작성하세요. 만약 N=5, M=5이고 수열이 다음과 같다면 1 3 1 2 3 합이 5이하가 되는 연속부분수열은 {1}, {3}, {1}, {2}, {3}, {1, 3}, {3, 1}, {1, 2}, {2, 3}, {1, 3, 1}로 총 10가지입니다. 🍄 입력설명 첫째 줄에 N(1≤N≤100,000), M(1≤M≤100,000,000)이 주어진다. 수열의 원소값은 1,000을 넘지 않는 자연수이다. 🍄 출력설명 첫째 줄에 경우의 수를 출력한다 🍄 입력예제 1 5 5 1 3 1 2 3 🍄 출력예제 1 10 정답 코드

알고리즘 2021.07.20

[JS] 알고리즘 기초 정복 5-3번_연속 부분수열 1

문제 5-3번 N개의 수로 이루어진 수열이 주어집니다. 이 수열에서 연속부분수열의 합이 특정숫자 M이 되는 경우가 몇 번 있는지 구하는 프로그램을 작성하세요. 만약 N=8, M=6이고 수열이 다음과 같다면 1 2 1 3 1 1 1 2 합이 6이 되는 연속부분수열은 {2, 1, 3}, {1, 3, 1, 1}, {3, 1, 1, 1}로 총 3가지입니다. 🍄 입력설명 첫째 줄에 N(1≤N≤100,000), M(1≤M≤100,000,000)이 주어진다. 수열의 원소값은 1,000을 넘지 않는 자연수이다. 🍄 출력설명 첫째 줄에 경우의 수를 출력한다. 🍄 입력예제 1 8 6 1 2 1 3 1 1 1 2 🍄 출력예제 1 3 정답 코드 투포인터 알고리즘 function solution(m, array) { let a..

알고리즘 2021.07.20