일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- CS
- 백준
- Javascript
- 동적 계획법
- vscode
- BFS
- Data Structure
- VIM
- Graph
- git
- Algorithm
- 자바
- db
- network
- react
- LeetCode
- 그레이들
- java
- 알고리즘
- DFS
- Redux
- 안드로이드
- 리트코드
- 프로그래머스
- Python
- Database
- TypeScript
- frontend
- 다이나믹 프로그래밍
- DP
- Today
- Total
목록Javascript (39)
늘 겸손하게
렉시컬 환경 (Lexcial Environment) 특정 코드가 작성, 선언된 환경(장소)을 의미한다. 코드 block, function, script를 실행하기 앞서 생성되는 특별한 객체로, 실행할 스코프 범위 안에 있는 변수와 함수를 프로퍼티로 저장하는 객체이다. 렉시컬 환경을 알기 위해 우선 자바스크립트 엔진이 코드를 실행하는 순서를 알아보자 자바스크립트 엔진은 코드 실행을 위해 생성 단계와 실행 단계를 거칩니다. 생성 단계에서 자바스크립트 엔진은 Execution Context를 생성하고 Call Stack에 쌓아둡니다. 그리고 선언문만 실행해서 Environment Record에 변수명, 함수명등과 같은 식별자와 식별자에 바인딩된(연결된) 값을 기록해둡니다. 이 Environment Record..
함수 선언식 - function declaration 원래 알던 함수 선언식 function sum(a, b) { return a + b; } 함수 표현식 - function expression 자바스크립트에서는 함수를 값으로 사용 가능. 즉, 함수를 변수에 할당 가능. const sum = function(a, b) { return a + b; } 두 방식의 차이점 호이스팅(hoisting)에서 차이를 보입니다. 함수 표현식은 호이스팅의 영향을 받지 않습니다. 호이스팅 설명글 https://besforyou.tistory.com/269 sample() functionEx() // 함수 선언식 function sample() { console.log("Sample function"); } // 함수 표현..
콜백 다른 코드에 인수로서 넘겨주는 실행 가능한 코드를 콜백(callback) 또는 콜애프터 함수(call-after function)라고 부릅니다. 아래와 같은 배열이 있다고 해보자 let numbers = [20, 10, 9, 8, 7, 5]; 위 배열을 내장함수인 sort()를 이용해 정렬하고 콘솔에 출력해보자 let numbers = [20, 10, 9, 8, 7, 5]; numbers.sort(); console.log(numbers) 정렬이 되긴 되나 이상하게 된다. 이상하게 정렬된 이유는 sort() 메소드의 인자로 compareFunction() - 비교함수를 주지 않아서 디폴트로 원소들을 문자열로 보고 유니코드 포인트 순서대로 문자열을 정렬했기 때문. 배열을 제대로 정렬할 수 있도록 co..
Promise 자바스크립트에서 비동기를 간편하게 처리해주는 객체입니다. 비동기는 '특정 코드의 실행이 완료되기를 기다리지 않고 다음 코드를 먼저 수행하는 것을 말합니다'. 프로미스는 다음 중 하나의 상태를 가집니다. 대기 ( pending ) : 이행하지도, 거부하지도 않은 초기 상태 이행 ( fulfilled ) : 연산이 성공적으로 완료 거부 ( rejected ) : 연산 실패 혹은 오류 발생 Promise가 필요한 이유 자바스크립트에서 비동기 처리는 주로 콜백함수로 이루어집니다. 하지만 콜백함수가 많이 중첩될 경우, 가독성이 떨어지고 에러처리도 힘든 콜백지옥에 빠질 수 있습니다. 이러한 콜백함수의 단점을 보완하기 위해 'Promise'를 사용합니다. Promise 객체 생성자 let promise..