많은 사람들이 착각을 하는 것은 바로 함수를 넣는 자리에 함수가 아닌 함수 호출을 넣고는 자신을 클릭을 하지 않았는데 함수가 호출 된다고 말하는 것add() 같은 경우
이런 코드가 주어졌을 때, 변수의 스코프와 실행의 순서에 대해서 당연히 알고 있어야함 그것이 바로 '인간 js 엔진' 내가 생각한 답console기준 'a' -> 'b' -> 'c' -> 'c' 당연히 스택으로 생각한다면나는 프링글스 통에 비유를 해주고 싶다.아래서 부
함수에서 어떤 값에 접근이 가능한가, 불가능한가예전에는 함수가 기준이었다면 이제는 block 기준 (중괄호) 함수가 아닌데 블록을 갖고 있는 것들 (if, for, while 들도)만약 다음과 같은 코드가 있고 함수의 스택을 기준이 아니라 함수의 선언을 기준으로 한다면
this는 기본적으로 window (console에 찍어보면 나옴) js : window node : global 이제는 두 개 모두 globalThis로 합쳐짐 This는 함수가 호출 될 때 결정 된다. 예시 함수가 호출 될 때 This에다가 특별한 동작을 안
콜백을 쓰면 지저분한 콜백 헬이콜백 헬이라고 불리는 지저분한 자바스크립트 코드의 해결책프로미스 : 내용이 실행은 되었지만 결과를 아직 반환하지 않은 객체 (실행 됐는데 결과값을 나중에 씀)Then을 붙이면 결과를 반환Resolve -> then으로 연결 Reject -
많은 사람들이 착각하는 것은 다음과 같은 코드가 있을 때 setTimeout이 보이면 냅다 비동기라고 생각하는 것인데 사실, 저 부분은 동기이다.그래서 결과가 저렇게 나옴파란색으로 칠해진 저 부분은 동기로 처리되기 때문에"제일 먼저"라는 글이 나가는 것 정리하자면, P
만약 이러한 코드가 있다고 하면 각각의 실행 후 걸리는 총 시간은 18초가 될 것이다. 여기에서 3초와 6초를 비동기적으로 실행해서 동시에 종료하고 싶다면 다음처럼 Promise를 활용하면 된다.await을 연달아 쓰지 말고 동시에 진행돼도 괜찮은 애들은 promise
함수와 함수 외부 변수와의 관계 모든 함수는 바깥 변수와 클로저 관계라고 생각하면 됨예를 들어 다음과 같은 상황도 클로저 관계라고 할 수 있음클로저 문제 -> 스코프, 비동기, var(쓰레기)클로저가 문제다 X클로저를 사용해서 해결하는 문제for문(반복문)과 비동