일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 알고리즘
- 취업
- grpahQL
- 클라이언트
- JS
- underbar
- DOM
- method
- vscode
- 공부
- Instantiation Patterns
- ftech
- 엔퀸즈
- 초보
- array
- 리액트
- 제일어려워
- this
- 자바스크립트
- 해커톤
- nqueens
- 일상
- 개발
- 코드스테이츠
- JavaScript
- 연습
- 코딩
- underscores
- 포스기
- react
- Today
- Total
목록Study JS for me (39)
analogcoding
문제. 인자로 받는 배열의 요소가 이 전 요소들의 총합보다 큰 수로만 이루어져있으면 true , 아니면 false 를 리턴. Ex) input : [1,3,6,15,32,70] => output : true input : [1,2,4,5,7,12,15] => output : false 해결방안. 1. 배열의 요소와 그 앞전 요소의 총합을 비교. 2. for문과 sum을 사용. 3. Boolean 값 리턴. sum 이라는 누적값을 받을 변수를 설정하고 정해진 요소 전까지의 누적값과 그 다음 요소의 값을 비교해서 Boolean 값으로 리턴한다. function arrSum(arr){ let sum = 0; for(let i = 0 ; i < arr.length; i++){ sum += arr[i] if(su..
문제. 인자로 받는 숫자의 각 자릿수를 반복적으로 곱해서 한자리수로 만들 때까지의 곱한 수를 리턴. Ex) 39 => 3. ㄴ 한자리 수가 될 때까지 반복 곱셈 : 3 * 9 = 27 => 2 * 7 = 14 => 1 * 4 = 4 . 총 3번 곱셈. 해결방안. 1-1. input num을 문자열로 바꾼 뒤 나눠서 각 자릿수를 곱할 수 있게 만듬. 1-2. 한자리수가 될 때까지 곱하는 조건을 while문으로 주고 곱할 때마다 카운트해서 카운트를 리턴. 2-1. 값이 0인 카운트를 전역변수로 생성. 2-2. input 숫자 num의 자릿수가 한 자리수라면 그대로 카운트를 리턴. 2-3. 아니라면 카운트++ 2-4. input num을 문자열로 바꾼 뒤 나눠서 각 자릿수를 곱한 값을 인자로 재귀함수로 만들어..
function protoype methods call,apply 는 그냥 함수가 실행되도록 "도와"주는 것이고 bind 는 "새로운" 함수를 "만들어" 준다. 함수를 호출하는 2가지 방법 call,apply는 함수를 실행시킨다(=호출해 실행한다). 사용하는 이유는 call,apply메서드의 첫번째 인수 때문이다. call,apply는 첫번째 인수 없이도 에러 없이 작동한다. 인수가 없을 경우, 자동적으로 전역객체를 가리키게 된다. function.prototype.call call은 함수를 빌려오거나 프로퍼티를 가져올 수 있다. case-1. 함수를 빌려오는 경우 case-2. 프로퍼티를 빌려오는 경우 case-3. Array.prototype.slice.call/apply.(obj/arguments)..
문제. 인자로 받는 문자열이 각기 다 다른 알파벳으로 이루어져있다면 true , 중복된 알파벳이 있으면 false를 리턴. Ex) input : "Dermatoglyphics" => output : true input : "aba" / "moOse" => output : false 해결방안. 1. input 값의 대소문자 상관없이 구분. 2. 각 글자들을 비교해서 중복된 글자가 있는지 확인. 3. Boolean 값 리턴. 첫 번째 솔루션. underscore 에 uniq함수를 활용해서 해결한 솔루션. input값을 대소문자 구분없이 만들고 배열로 나눠준다. 하나 씩 값을 넣어서 비교를 위한 빈 배열을 생성한다. var isIsogram = function(str) { str = str.toLowerCas..
문제. 인자로 받는 문자열의 첫 글자들을 대문자로 변경한 뒤 리턴. Ex) input : "hello world" => output : "Hello World" input : "javascript is sexy" => output : "Javascript Is Sexy" 해결방안 1. 공백으로 구분된 단어를 배열로 나눔. 2. 첫 글자만 toUpperCase()를 사용해서 대문자로 변경. 3. 다시 문자열로 합친 뒤 리턴. split(' ') 메소드를 써서 공백으로 구분 된 단어 요소로 나누어준다. var letterCapitalize = function(str) { str = str.split(' '); map() 함수를 이용해서 elements의 0번째 요소를 대문자로 변경하고 남은 elements에..
Execution Context (실행 컨텍스트)는 scope, hoisting, this, function, closure 등의 동작원리를 담고 있다. 어떤 함수가 호출되면 execution context가 만들어진다. 정의 : 실행컨텍스트는 추상적인 개념 . 실행 컨텍스트는 실행 가능한 코드가 실행되기 위해 필요한 환경 변수 : 전역변수, 지역변수, 매개변수, 객체의 프로퍼티 함수 선언 변수의 유효범위(Scope) this this 자바스크립트에서 함수가 호출될 때, 함수 호출 방식에 따라 this 에 바인딩되는 객체가 달라진다. 정의 : 모든 함수 scope 내에서 자동으로 설정되는 특수한 식별자. execution context의 구성요소 중 하나로 , 함수가 실행되는 동안 이용할 수 있다. Bi..
문제. 인자로 받는 문자열의 숫자가 2의 제곱수면 true를 아닐 경우 false를 리턴. Ex) input : 2 , 4 , 8 , 16 , 32 , 64 , 128 ... => output : true input : 1 , 22 , 27 , 222 ... => output : false 해결방안. 1. input값을 숫자로 받기. 2. for문을 사용해서 input을 2의 i ( i는 input보다 작게 ) 제곱과 비교. 3. Boolean 값 리턴. iput을 숫자로 변환하고 i 번 제곱할 i 를 설정해준다. var powerOfTwo = function(str) { var num = Number(str); // 숫자로 변환 for(let i = 1 ; i < num ; i++){ // input이..
문제. 인자로 받는 문자열의 알파벳을 알파벳의 고유 index로 리턴. Ex) input : "The sunset sets at twelve o' clock." => output : "20 8 5 19 21 14 19 5 20 19 5 20 19 1 20 20 23 5 12 22 5 15 3 12 15 3 11" 해결방안. 1. 대소문자 구분 없이 작동하게 만들기. 2. 알파벳의 고유 index를 찾기 위해 알파벳 배열 만들기. 3. 문자열을 각 요소로 만들어 배열로 담기. 4. 특수문자나 공백 걸러내기. 5. iput으로 오는 배열의 요소를 알파벳 배열에 indexOf를 사용해서 index 찾기. 6. 다시 문자열로 리턴. 먼저 함수를 생성하고 input의 값을 소문자로 통일하고 각 배열로 나눠준다. ..