일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 2주 프로젝트
- LeetCode
- 리액트
- 4주 프로젝트
- til
- 타임어택
- 렛츠기릿 자바스크립트
- codestates
- SQL 고득점 Kit
- 코드스테이츠
- 알고리즘
- 제로초
- 프로그래머스
- 정재남
- 토익
- 파이썬
- 타입스크립트
- 회고
- js
- Async
- 손에 익히며 배우는 네트워크 첫걸음
- 백준
- 타입스크립트 올인원
- 자바스크립트
- python
- 리트코드
- 리덕스
- programmers
- 코어 자바스크립트
- javascript
- Today
- Total
목록자바스크립트 (117)
Jerry
자바스크립트에서 함수 호출 방식에 따라(어떻게 호출되었는지에 따라) this에 바인딩되는 객체가 동적으로 달라진다. 수의 상위 스코프를 결정하는 방식인 렉시컬 스코프(Lexical scope)는 함수를 선언할 때 결정된다. this 바인딩과 혼동하지 않도록 주의하기 바란다. 함수의 호출하는 방식 1. 함수 호출 2. 메소드 호출 3. 생성자 함수 호출 4. apply/call/bind 호출 var foo = function () { console.dir(this); }; // 1. 함수 호출 foo(); // window // window.foo(); // 2. 메소드 호출 var obj = { foo: foo }; obj.foo(); // obj // 3. 생성자 함수 호출 var instance = ..
동기식 처리 모델(Synchronous processing model) 직렬적으로 태스크(task) 수행한다 태스크는 순차적으로 실행되며 어떤 작업 수행 중이며 다음 작업은 대기한다 서버에서 데이터 요청을 받아 화면에 표시하는 작업 수행 시, 서버에 데이터 요청 후 응답될 때까지 태스크들은 블로킹(blocking, 작업 중단)이 된다. function first() { console.log('first'); second(); } function second() { console.log('second'); third(); } function third() { console.log('third'); } first(); 비동기식 처리 모델(Asynchronous processing model / Non-Blo..
var 키워드 Scope of var : var 키워드의 범위 범위는 기본적으로 변수를 사용할 수 있는 위치 의미 var 선언은 전역 범위 혹은 함수 범위로 지정 var 변수가 함수 외부 선언 => 범위는 전역 (전체 윈도우 상) var 변수가 함수 내부 선언 => 범위는 함수 블록 내부 var hello = 'a'; function person() { var world = 'b'; } console.log(world); // world is not defined console.log(hello); // hello var의 호이스팅 호이스팅이란 변수와 함수 선언이 맨 위로 이동되는 자바스크립트 매커니즘 = 인터프리터가 변수와 함수의 메모리 공간을 선언 전에 미리 할당하는 것 console.log (gre..
var 호이스팅 인터프리터가 변수와 함수의 메모리 공간을 선언 전에 미리 할당하는 것 var 로 선언한 변수의 경우 호이스팅 시 undefined로 변수 초기화 var 키워드로 선언된 변수는 선언 단계와 초기화 단계가 한번에 이뤄진다 let과 const로 선언한 변수의 경우 호이스팅 시 초기화하지 않음 변수의 선언과 초기화를 분리한 후, 선언만 코드의 최상단으로 옮기는 것 변수 정의 코드보다 사용 코드가 앞서 등장할 수 있음 함수 선언도 위와 동일 // #1 Case function catName(name) { console.log("제 고양이의 이름은 " + name + "입니다"); } catName("호랑이"); /* 결과: "제 고양이의 이름은 호랑이입니다" */ // #2 Case catName..
function solution(M, N) { return M*N-1; }
function solution(num, total) { let start = 0; let test = new Array(num).fill(0).map((e, i) => i).reduce((a, c) => a + c, 0); while (test !== total) { if (test i + start).reduce((a, c) => a + c, 0); } return new Array(num).fill(0).map((e, i) => i + start); }
function solution(common) { let answer = 0; let len = common.length; let diff = common[1] - common[0]; let divide = common[1] / common[0]; if (common[1] - common[0] === common[2] - common[1]) { // 등차수열 return common[len - 1] + diff; } else { // 등비수열 // if (common[1] - common[0] !== common[2] - common[1]) { return common[len - 1] * divide; // return common[len - 1] * divide; } }
function solution(A, B) { let cnt = 0; if (A === B) return 0; let temp = A; for (let x = 0; x < A.length; x++) { if (temp === B) { cnt = x; break; } temp = temp[A.length - 1] + temp.slice(0, A.length - 1); } return !!cnt ? cnt : -1; }