함수 호출이란, '함수( )' 식으로 표현하는 식을 말한다.함수가 호출되면 그 자리에 return 값을 대체 하자!고차 함수일 경우는 다를수가 있다함수 호출이 오면 return값으로 대체를 해보자!
코드는 위에서 아래로 보통 실행이 된다.자바스크립트는 이러한 형태인 stack 형태로 실행이 된다. 스택은 기본적으로 LIFO의 성질을 가진다.LIFO: Last Info First Out의미로 마지막에 들어온게 제일 먼저 나가고, 처음 들어온게 제일 마지막에 나간다는
스코프 체인 함수에서 '{ }'을 기준으로 어떤 값에 접근이 가능한가 불가능 한가를 뜻한다.
호이스팅은 개념적으로 말하면, 자바스크립트 엔진은 함수를 실행하기전 변수, 함수를 자바스크립트 내부적으로 제일 상단으로 올린다. 그 후 변수 선언, 함수 선언을 하여 자바스크립테에게 "자바스크립트야 나라는 존재가 있다는걸 기억해줘!"라고 알린다. 이러한 현상을 호이스팅
자바스크립트에 this는 다른 언어랑 this랑 다르다.기본적으로 자바스크립트에서 this는 윈도우다!!!"use strict"모드에서는 this는 "undefiend" 이다함수에서도 this는 윈도우다객체에서 this을 호출 할경우this는 함수가 호출될때 결정 된다
addEventListener에 콜백함수는 호출이 아니라 선언만 된거다.this는 함수가 호출이 될때 결정 된다고 했다위에 코드만 봤을때는 실질적으론 this가 무엇인지 알수는 없다공식문서에서는 addEventListener에 this는 이벤트가 일어나는 태그를 가리킨
우선 호출스택에 anonymouse, a함수가 쌓인다anonymouse스코프에 함수a, x, y가 선언 되고, 값이 할당된다a함수가 호출 스택에 쌓인다a함수의 스코프에 a변수가 선언되고 값이 할당된다a함수에 y=false; 코드를 만나면 우선 a스코프에서 y를 찾고 y
실행이 되고, 결과값을 나중에 사용할 수 있다콜백함수라고 무조건 비동기 함수가 아니다catch는 then을 포함한 catch이다
한 번 비동기는 영원한 비동기이다비동기는 동시의 문제가 아니고, 순서의 문제다호출 스택에 annonymouse가 쌓인다 => setTimeout(a)이 쌓인다 => 백그라운드에 setTimeout(a)에 비동기 함수가 쌓인다 => setTimeout(b)이 쌓인다 =>
자! 이제 그림을 보면서 어떻게 돌아가는지 분석을 해보자!우선 anonymouse가 실행을 하면서 변수 a와 p가 선언된다.a = 2로 할당이 되고 p는 "new Promis"함수가 선언되는 동시에 호출이 된다.Promise함수가 호출 되면서 console.log("s
그림을 보면서 같이 분석해보자anonymouse가 호출이 되고, console.log('spear')가 실행이되고 사라진다.a함수가 호출이되고, then함수 2개가 백그라운드에 저장된다.a함수 안에 console.log('jin')이 실행되고 사라지고, await함수
클로저란 한문장으로 말하면 "함수와 함수외부 변수간의 관계"를 뜻한다클로저 => 스코프, 비동기, var(쓰레기)클로저가 문제다x클로저를 사용해서 해결하는 문제for문(반복문)과 비동기를 함께 사용하면 종종 발생var로 i를 선언하게 되면 i는 a함수의 스코프에 위치하