전체 글
-
Data structure : 자료구조 (stack, queue)concept/data structure 2020. 5. 2. 18:48
stack Last in First out (후입선출) 구조예시 책상 위에 쌓아둔 책 주방에 쌓아둔 접시 하노이의 탑 활용 예 웹브라우저 방문기록(뒤로가기) 실행취소 자바스크립트에서 지원하는 다양한 stack method들이 있다. pop — Pulls (removes) the element out of the stack. ... push — Pushes (inserts) the element in the stack. ... peek — returns the item on the top of the stack, without removing it. empty — returns true if the stack is empty, false otherwise. swap — the two top most ele..
-
++, -- 를 앞에 쓴 것과 뒤에 쓴 것은 무슨 차이가 있는 것일까?concept/javascript 2020. 5. 2. 03:45
for 반복문을 쓰면서 항상 i++ 혹은 i-- 만 사용했었는데 어쩌다가 ++i 를 써야할 상황을 발견했다. 연산자를 앞에 쓰고 뒤에 쓰고의 차이가 무슨 차이인가 싶어서 찾아보게 되었다. ++/-- 연산자는 prefix, postfix 형태로 사용할 수 있다. let counter = 1; let a = ++counter; console.log(a) // 2 let counter2 = 1; let b = counter2++; console.log(b) // 1 prefix형태로 앞에 있을 경우엔 이미 증가를 하고 난 뒤의 값을 a에 넣어주지만 postfix형태로 뒤에 있을 경우엔 b에 1이란 값을 넣어준 뒤 값이 증가한다. 만약 값을 증가시키고 그 즉시 사용을 하고 싶다면 ++counter를, 값을 증가..
-
이 문제들을 다 풀면 stack, queue 정복!problem 2020. 5. 2. 03:39
Q. 다음 중 스택에 대한 설명으로 틀린 것은? A 먼저 들어간게 나중에 나오는 First In Last Out 구조이다. B 먼저 들어간게 먼저 나오는 First In First Out 구조이다. C top 메서드는 스택의 맨 위에 있는 값을 꺼내고, 해당 값을 반환한다. D 스택에 할당된 공간이 꽉 차면 더이상 push 할 수 없다. E 재귀 함수를 실행할 때 사용된다. 더보기 answer : b c A 먼저 들어간게 나중에 나오는 First In Last Out 구조이다. O B 먼저 들어간게 먼저 나오는 First In First Out 구조이다. X C top 메서드는 스택의 맨 위에 있는 값을 꺼내고, 해당 값을 반환한다. X => top 메서드는 스택의 맨 위에 있는 값을 꺼내고, 해당 값을..
-
ES6 - for ... of loopsconcept/javascript - ES6 2020. 5. 2. 03:22
iterable = 반복가능한 객체 (Array, Map, Set, String, TypedArray, arguments 객체 등을 포함)에 대해서 반복해서 작동한다. array의 경우 const array1 = ['a', 'b', 'c']; for (const element of array1) { console.log(element); } // expected output: "a" // expected output: "b" // expected output: "c" string의 경우 let str = 'CodeStates'; for(let char of str) { console.log(char); } // C // o // d // e // S // t // a // t // e // s objec..
-
ES6 - Arrow Functions (화살표 함수)concept/javascript - ES6 2020. 5. 2. 03:12
함수를 간단하게 쓸 수 있는 방법이다. arrow function은 block scope가 생성된다. (function scope와 비교되는 말) 화살표 함수에 없는 3가지는 1. 함수이름 2. this (실행 컨텍스트) 3. arguments 이다. 먼저 arrow function을 어떻게 쓰는지 보자. :: 쓰는 방법 :: let adder = function(x){ return function(y){ return x + y; } } 이 함수를 let adder = x => { return y => { return x + y; } } 이렇게 쓸 수 있다. 여기서 끝이 아니라 return 을 생략할 수도 있다. let adder = x => y => x + y; 즉, arrow function을 통해 ..
-
ES 6 - Template literalsconcept/javascript - ES6 2020. 5. 2. 00:46
이건 아주 간단한 개념! 예제로 바로 보는게 이해하기 더 빠를 것 같다. ES5에서는 아래와 같이 구현했어야 했던 코드를 var myAge = 28; console.log("저는 " + myAge + "세 입니다."); // "저는 28세 입니다." ES6에서는 이렇게 구현할 수 있다는 것! var myAge = 28; console.log(`저는 ${myAge}세 입니다.`); // "저는 28세 입니다." 여기서 백틱 ( ` )과 ${} 이 기호를 활용한다는 것이 포인트다. 백틱은 키보드의 ~ 키에 함께 있다. 이걸 사용할 때 백틱이 나오지 않아 고생한 적이 있는데 내 노트북에서만 그런 것인지는 모르겠지만 한글로 쓰다가 이 키를 누르면 ₩ 이렇게 나온다는 것.. 영어로 전환한 후 이 키를 눌러줘야 `..
-
ES6 - Default Parameter / Spread operator / Rest parametersconcept/javascript - ES6 2020. 5. 2. 00:18
Default Parameter function sum(x = 0, y = 0) { return x + y; } console.log(sum(1)); // 1 console.log(sum(1, 2)); // 3 이렇게 x,y 값을 default 0으로 설정해놓으면 전달인자가 전달되지 않은 경우에는 자동으로 0으로 설정이 된다! Spread operator 배열을 인자로! Spread 문법(Spread Syntax, ...)는 대상을 개별 요소로 분리한다. Spread 문법의 대상은 iterable이어야 한다. Symbol.iterator 메소드를 구현하거나 프로토타입 체인에 의해 상속한 객체 대표적으로 array 와 string let a = '12345'; console.log(...a); // 1 2..
-
ES 6 - destructuring assignment (구조분해할당)concept/javascript - ES6 2020. 5. 1. 16:39
destructuring assignment 배열이나 객체의 속성을 해체하여 그 값을 개별 변수에 담을 수 있게 하는 JavaScript 표현식 (mdn) 배열을 해체한 경우 let a, b, rest; [a, b] = [10, 20]; console.log(a); // expected output: 10 console.log(b); // expected output: 20 [a, b, ...rest] = [10, 20, 30, 40, 50]; console.log(rest); // expected output: Array [30,40,50] 객체를 해체한 경우 ({a, b, ...rest} = {a: 10, b: 20, c: 30, d: 40}); console.log(a); // 10 console...