자바스크립트 12

[JS/Node] 고차함수 Chapter - 내장 고차함수 이해하기

Achievement Goals forEach 호출한 배열의 요소를 순회하면서 콜백 함수를 실행한다. find 호출한 배열의 요소를 순회하면서 콜백 함수의 반환값이 true인 첫 요소를 반환한다. filter 호출한 배열의 요소를 순회하면서 콜백 함수의 반환값이 true인 요소만으로 구성된 새로운 배열을 반환한다. map 호출한 배열의 요소를 순회하면서 콜백 함수의 반환값으로 이루어진 새로운 배열을 반환한다. reduce 호출한 배열의 요소를 순회하면서 콜백 함수의 반환값을 다음 순회시 콜백 함수의 첫 번째 인수로 전달하고 하나의 결과값으로 응축하여 반환한다. sort 호출한 배열의 요소를 정렬한다. 두 번째 인수로 전달된 비교 함수가 존재한다면 비교함수의 반환값에 따라 정렬한다. some 호출한 배열의..

학습목표 정리 2021.09.16

[JS/Node] 핵심 개념과 주요 문법 Chapter - Spread/Rest 문법

Spread 문법은 ... 을 사용해 배열을 풀어서 인자로 전달하거나 각각의 요소로 넣을 때에 사용한다. function sum(x, y, z) { return x + y + z; } const numbers = [1, 2, 3]; console.log(sum(...numbers)); // 6 numbers가 배열임에도 불구하고 x, y, z에 각 요소가 들어가 계산되는 것을 확인할 수 있다. Rest 문법은 파라미터를 배열의 형태로 받아서 사용할 수 있다. function sum(...theArgs) { return theArgs.reduce((acc, cur) => acc + cur); } sum(1, 2, 3) // 6 sum(1, 2, 3, 4) // 10 이를 이용하면 배열을 조작할 때 좀 더 ..

학습목표 정리 2021.09.02

[JavaScript] 피보나치 수열

어떤 사람이 토끼 1쌍을 우리에 넣었다. 이 토끼 1쌍은 한 달에 새로운 토끼 1쌍을 낳고, 낳은 토끼들도 1달이 지나면 다시 1쌍의 토끼를 낳는다. 그렇다면 1년이 지나면 몇 쌍의 토끼가 있을까? 이 물음에 대한 답을 수열로 나타낸 것을 피보나치 수열이라 한다. 피보나치 수열이 수학적으로 중요한 이유는 수열의 인접한 두 항이 자연에서 자주 발견되는 황금비를 만들기 때문이다. 황금비에 관한 설명은 아래 참고자료에 정리되어 있다. 프로그래밍에서는 피보나치 수열을 구하는 알고리즘이 재귀 함수를 이해하는데 적합해서 팩토리얼과 함께 자주 등장하기 때문에 피보나치 수열을 구하는 방법을 정리해보기로 했다. 피보나치 수열은 이전에 나온 두 값을 합해서 새로운 값이 나오기 때문에 F(n) = F(n-1) + F(n-2..

[JS/Node] 핵심 개념과 주요 문법 Chapter - 스코프, 클로저

스코프 스코프의 의미와 적용 범위를 이해할 수 있다 스코프를 쉽게 말하면 변수에 접근할 수 있는 유효범위라고 할 수 있다. 변수가 선언된 위치와 방식에 따라 그 변수를 사용할 수 있는 범위가 정해져 있다. 스코프의 주요 규칙을 이해할 수 있다 스코프는 크게 나누면 전역 스코프와 지역 스코프로 나눌 수 있으며 전역 스코프는 스크립트 전체를 뜻하고 지역 스코프는 전역 스코프 내의 일정 구역을 뜻한다. block scope는 중괄호를 사용해서 구역을 나눈 것이고 function scope는 함수의 영역이다. 예외로 화살표 함수로 둘러싼 스코프는 block scope로 취급된다. 자바스크립트에서 변수를 선언하는 방법에는 var, let, const 가 있다. var는 전역 변수로 사용되고 let은 지역 변수로 ..

학습목표 정리 2021.08.30

[JS/Node] 배열, 객체 Chapter - 객체

Achievement Goals 객체 기초, 퀴즈, 실습 배열과 객체의 구조를 이해하고 언제, 어떻게 사용하는지 이해할 수 있다. 배열은 순서를 가지기에 인덱스를 통해 값에 접근 할 수 있지만 객체는 순서가 없고 인덱스 대신 key를 통해 의미를 가지고 값에 접근할 수 있다. 객체 속성(property)의 추가, 조회, 변경, 삭제를 자유자재로 할 수 있다. 객체 속성 조회법 두 가지, dot notation과 bracket notation의 차이를 이해한다. 객체의 속성은 dot notation과 bracket notation 으로 조회할 수 있다. dot notation 은 . 을 이용해 객체의 키에 접근하는 방식이고 bracket notation은 []을 이용해 키에 접근하는 방식이다. let us..

학습목표 정리 2021.08.23

[JavaScript] 프로그래머스 level 1 완주하지 못한 선수

이번에 코드스테이츠에서 같이 수업을 듣는 동기들끼리 하는 스터디그룹에 초대받아 프로그래머스라는 사이트를 알게 되었다. 깃헙연동으로 로그인만 하면 여러 가지 문제를 언어에 맞게 풀어볼 수 있는 사이트였다. 프로그래머스에는 문제의 난이도에 따라 level 1부터 5까지 등급을 매겨놨는데 그중 level 1 완주하지 못한 선수라는 문제를 풀면서 느낀 점과 다른 사람의 풀이를 보고 분석해보기로 했다. 마라톤 경기에 참가한 선수 명단과 마라톤 경기를 완주한 선수 명단을 배열로 주고 완주하지 못한 선수를 찾는 문제였다. 수도코드를 작성하기 전에 먼저 문제를 추상화하는 과정을 거쳤다. 배열 arr1과 arr2 가 함수의 인자로 주어진다. arr2는 arr1에서 한 요소가 빠져있는 배열이다. 빠져있는 그 요소를 찾아서..

[JS/Node] 기초 Chapter - 반복문

반복문 기초, 퀴즈, 실습 반복문을 활용하여 단순한 기능을 반복하여 수행할 수 있다. 반복문이란 어떠한 조건이 만족할 때 일정 구간의 연산을 반복하는 것이다. 반복문(for문)과 문자열, 숫자를 이용해 반복적으로 코드를 실행시킬 수 있다. for (let i = 0; i < 5; i++) { console.log('hi'); } // 'hi''hi''hi''hi''hi' 기본적인 for문 (for (let i = 0; i < 5; i++))을 응용하여 다양한 for문을 만들 수 있다. for와 while의 차이에 대해서 설명할 수 있다. for와 while 의 차이는 사용하는 문법의 차이로 반복 횟수가 쉽게 예측이 될 경우 for문을 사용하는 것이 가독성이 좋고 반복 횟수를 쉽게 예측하기 어려울 경우 w..

학습목표 정리 2021.08.07

[JS/Node] 기초 Chapter - 문자열

Achievement Goals 문자열의 속성과 메소드를 이용해 원하는 형태로 만들 수 있다. 문자열의 length라는 속성을 활용해 길이를 확인할 수 있다. str.length let str = 'string' str.length // 6​ 문자열의 글자 하나하나에 접근할 수 있다. str[1] 문자열은 각 위치에 따른 위치값을 index로 갖고 있기 때문에 index를 이용하여 접근할 수 있다. let str = 'string' str[0] // 's' str[1] // 't' str[2] // 'r' str[3] // 'i' str[4] // 'n' str[5] // 'g'​ 문자열을 합칠 수 있다. word1 + " " + word2 let word1 = 'a'; let word2 = 'b'; w..

학습목표 정리 2021.08.07

[JS/Node] 기초 Chapter - 조건문

조건문 기초, 퀴즈, 실습 truthy와 falsy 가 조건문에서 작동하는 방식을 이해할 수 있다. truthy와 falsy는 실제 값이 true나 false가 아니더라도 boolean을 기대하는 context에서 true나 false를 판별할 수 있게끔 하기 위해 사용된다. falsy 값에는 false, 0, -0, 0n, "", null, undefined , NaN 등이 있으며 falsy가 아닌 값은 모두 truthy이다. 비교연산자를 통한 엄격한 비교(=== , !==)에 대해 이해할 수 있다. ==는 두 가지를 비교할 때 유형 변환을 수행하고 ===는 유형 변환을 수행하지 않는다. !는 부정을 뜻하며 ===의 부정은 !== , ==의 부정은 != 이다. if 와 else if , else를 이해..

학습목표 정리 2021.08.04

[JS/Node] 기초 Chapter - 함수

함수 Intro 함수가 "작은 기능의 단위"라는 것을 이해할 수 있다. 함수란 작업을 수행하거나 값을 계산하는 문장들을 묶어놓은 것과 같다. 어떤 기능을 구현하기 위한 코드를 묶어 함수로 선언해놓으면 같은 기능이 필요할 때마다 함수를 호출하여 사용할 수 있어 반복된 코드 작성을 피할 수 있다. 함수 선언을 위해 필요한 keyword, name, parameter, body에 대해 이해할 수 있다. keyword 컴퓨터의 동작을 컨트롤할 수 있게 자바스크립트에서 미리 약속해놓은 명령이며 함수 선언을 위해 필요한 keyword는 function이다. name 함수를 호출할 때 사용할 함수의 이름 parameter 함수에 입력되는 값으로 그 값들을 함수 안에서 어떻게 지칭할지 정해놓는 약속 body 함수의 내..

학습목표 정리 2021.08.03