자바스크립트 정리

지금까지 공부한 내용들 중에서 자바스크립트의 핵심적인 내용들을 정리할 예정(업데이트 지속적으로 할 예정)

 

1. 비동기 처리

자바스크립트는 기본적으로 비동기적으로 작동한다.

간단히 요약하자면

동기적 처리는 1의 과정이 끝나야 2의 작업이 시작되는 구조이고

비동기적 처리는 1의 과정의 진행유무와 상관없이 2, 3, 4... 번 작업들이 시작됨을 말한다

 

자바스크립트는 기본적으로 비동기적으로 실행된다.

그래서 비동기적인게 뭐가 중요하냐? 에 대한 물음에 답을 해보자면

어떤 결과를 바탕으로 실행되어야 하는 작업이 있다면, 아무생각없이 코드를 작성했다면

결과가 나오기 전에 작업이 시작되어 정확하지 않은 결과를 만들어 낼 수도 있다는 것이다.

 

정확한 결과를 위해 동기적으로 작업을 진행시켜야 하는 경우가 있는데

이 때 사용되는것이

 

1. Callback function

2. Promise

이다. (나머지는 추후 학습 후 수정)

 

2. 렉시컬 스코프

일반적으로 함수의 상위 스코프를 결정하는 방법은 두 가지가 있다.

1. 함수를 어디서 호출했는지에 따라서 함수의 상위 스코프를 결정

2. 함수를 어디서 정의했는지에 따라서 함수의 상위 스코프를 결정

 

전자를 동적 스코프, 후자를 렉시컬 스코프 혹은 정적 스코프라고 한다.

자바스크립트의 경우는 렉시컬 스코프를 택하고 있다.

 

따라서, 함수가 호출된 위치는 상위 스코프 결정에 아무런 영향을 주지 않는다.

 

var x = 1;

function modify() {
  var x = 10;
  print();
}

function print() {
  console.log(x);
}

modify();
print();

가령 위와같은 코드가 있다고 생각해보자, modify에서 x를 10으로 재정의했다.

그렇다고해서 print를 호출하면 10이 나올까?

 

아니다, print가 정의된 위치에서는 x가 1이기때문에 modify에서 print를 호출해도 1을 출력하게된다.

 

3. 클로져(예정)

'STUDY > JavaScript' 카테고리의 다른 글

[JS] Babel 이란?  (1) 2023.10.01
[JS] 번들러란 무엇인가?  (0) 2023.09.24
[JS] 23년 JS에 새로 추가된 기능들  (0) 2023.07.30