일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 연습
- method
- 초보
- nqueens
- react
- 포스기
- 취업
- JS
- this
- 공부
- Instantiation Patterns
- array
- 알고리즘
- 자바스크립트
- underscores
- grpahQL
- 개발
- 해커톤
- 엔퀸즈
- 제일어려워
- 일상
- ftech
- 클라이언트
- JavaScript
- underbar
- 코드스테이츠
- 리액트
- vscode
- 코딩
- DOM
- Today
- Total
목록분류 전체보기 (176)
analogcoding
화살표 함수(Arrow function)는 function 키워드 대신 => 를 사용하여 보다 간략한 방법으로 함수를 선언할 수 있다. 하지만 모든 경우 화살표 함수를 사용할 수 있는 것은 아니다. 화살표 함수의 기본 문법은 아래와 같다. 함수 선언식 예시 function fnName() { } 함수 표현식 예시 var fnName = function() { } 화살표 함수는 익명 함수로만 사용할 수 있다. 따라서 화살표 함수를 호출하기 위해서는 함수 표현식을 사용한다. 함수가 매개변수를 받는 경우에 따른 화살표 함수식 () => { ... } // 매개변수가 없을 때. x => { ... } // 매개변수가 한 개일 때는 소괄호 생략 가능. (x, y) => { ... } // 매개변수가 여러 개일 때..
ES6 에서 새로 도입된 문자열 표기법으로 백틱(`)을 사용한다. (여담으로 맥북에서 한/영 자판을 쓰고 있는데 백틱이 키보드에 없어서 한 참 찾았다. 분명 사용한 기억이 있는데.. 해답은 한글자판모드일 때 ₩가 영어자판모드일 때 `이다.) 일반적인 문자열에서 줄바꿈은 허용되지 않으며 공백을 위해선 \ 를 사용했지만 ES6 템플릿 리터럴은 일반적인 문자열과 달리 여러줄에 걸쳐 문자열을 작성할 수 있다. 공백이 그대로 적용된다. 또한 문자열 내에서 따옴표를 사용할 때 역시 \ 를 사용해야했지만 `를 사용하면 그럴 필요가 없다. 또한 템플릿 리터럴은 문자열과 변수 간의 + 연산자를 사용하지 않고 다른 간단한 방법으로 새로운 문자열을 삽입할 수 있다. 이를 문자열 인터폴레이션(string interpolati..
json 형태의 TREE_DATA 에서 객체와 배열로 구성된 안에서, 인자로 넘기는 특정 id값을 가지고 있는 객체를 찾아 리턴. 이 때 객체는 children이라는 키 값에 자식 노드를 가질 수 있으며, recursion을 통해서 부모 뿐만이 아닌, 자식 노드 중에서도 id값을 가진 객체가 있는지를 찾아서 리턴. json 구조의 TREE_DATA var TREE_DATA = { "items": [ { "id": "1", "name": "johnny" }, { "id": "2", "name": "ingi", "children": [ { "id": "3", "name": "johnson" }, { "id": "4", "name": "katy" }, { "id": "5", "name": "steve", "c..
ES6 이전 변수 선언은 var 키워드 뿐이었지만 var 키워드에는 몇 가지 문제점이 있었다. var 의 문제점. 1. 함수 레벨 스코프를 가지므로 전역 함수 외부에서 생성 될 경우 모두 전역 변수여서 전역변수가 너무 많아진다. 2. 생략이 허용되므로 암묵적 전역변수가 생길 수 있다. 3. 변수의 중복 선언이 허용된다. 이러한 문제들과 더 편리한? 코딩을 위해 새로 도입 된 let 과 const . let 1. 재할당이 자유롭다. 2. var 와 다르게 블록 레벨 스코프를 가진다. 모든 코드 블록 {} 안에서 선언된 변수는 코드 블록 내에서만 유효하고 블록 외부에서 참조할 수 없다. 즉 내부 선언 지역 변수이다. let foo = 123; // 전역 변수 { let foo = 456; // 지역 변수 l..
var getElementsByClassName = function(className){ // 먼저 인자로 받는 className과 동일한 이름에 class이름을 가진 것을 찾아서 // 그 class이름과 동일한 class를 가진 것들을 빈 배열에 담아보자. var result = []; // 빈배열 생성 function check(elements){ // elements는 class이름을 확인할 장소 ex) div , span 등등 if ( elements.classList){ // 그 장소에 class를 가진 게 존재한다면 if (elements.classList.contains(className)){ // 그 클래스에 인자로 받는 className이 있으면 result.push(elements); ..
문제. input 으로 숫자와 문장이 섞인 문자열이 들어오면 섞인 숫자의 합을 글자수로 나눈 값을 리턴. 소수일 경우 반올림/내림해서 리턴. Ex) input : "Hello6 9World 2, Nic8e D7ay!" => output : ((6 + 9 + 2 + 8 + 7 = 32) / 17 letters) = 2 해결방안. 1. input 을 배열로 나누고 각 요소가 숫자인지 알파벳인지 판단. 2. 판단을 위한 알파벳으로 이루어진 소문자 배열을 생성. 3. input 을 소문자로 통일. 4. 각 인덱스에서 숫자 타입이 있다면 변수에 모두 더 함. 5. 문자의 경우 빈 배열에 넣어주고 그 length 를 파악. input 을 소문자로 바꾼 뒤 배열로 변환 , 알파벳 문자열 배열 생성 , 문자열을 담을 ..
문제. input 으로 주어진 문자열의 각 단어들을 키로 , 단어의 사용 횟수를 값으로 가친 객체로 리턴하고 빈 문자열이 오면 빈 객체를 리턴. Ex) input : 'ask a bunch get a bunch' => output : {ask: 1, a: 2, bunch: 2, get: 1} 해결방안. 1-1. input 문자열을 분리해서 빈 객체의 key 값으로 정함. 1-2. key 의 값은 1. 1-3. 이미 key 가 존재 할 경우 값 ++ 2-1. reduce 메소드의 초기값으로 빈 객체를 줌. 2-2. 객체=acc 안에 curr이 있다면 값++ 2-3. 없다면 값을 1 로 지정. 첫 번째 솔루션. 빈 객체를 생성. 빈 문자열이 들어오면 빈 객체를 리턴하고 문자열을 공백 기준으로 나눔. unct..
문제. sumDigits 함수는 input으로 숫자를 받고 받은 숫자의 각 자릿수의 합을 리턴하고 음수를 받는 경우 맨 앞 자릿수는 음수로 계산해서 리턴. Ex) input : 1148 => output : 14 (1+1+4+8) input : -316 => output : 4 (-3+1+6) 해결방안. 1. input 숫자를 양수, 음수에 따라 조건을 나눔. 2. 각 자릿수에 접근하기 위해 문자열로 변경. 3. 한 자릿수 양수,음수의 경우 바로 input을 리턴. 4. 양수의 경우 각 자릿수의 값을 변수 sum에 반복적으로 더해서 누적 값을 리턴. 5. 음수의 경우 맨 앞 자릿수에 -1을 곱해 변수로 설정, 그 수에 나머지 값들을 반복적으로 더해서 누적 값을 리턴. input의 각 자릿수의 접근을 위해..