코딩응애의 개발블로그

코드스테이츠 14일차 - ([JavaScript] 핵심 개념과 주요 문법) & 회고 본문

코드스테이츠(부트캠프)

코드스테이츠 14일차 - ([JavaScript] 핵심 개념과 주요 문법) & 회고

이너멜 2022. 7. 11. 16:08

스코프 

자바스크립트에서 스코프는 변수 접근 규칙에 따른 유효 범위를 뜻한다. 변수에 접근할 수 있는 범위가 존재 하는데

중괄호 안쪽에 선언이 됬는지 바깥쪽에 선언이 됬는지가 중요한데 이 범위를 스코프라고 부른다 

바깥쪽 스코프에서 선언한 변수는 안쪽 스코프에서 사용 가능합니다. 반면에, 안쪽에서 선언한 변수는 바깥쪽 스코프에서는 사용할 수 없습니다.

그리고 스코프는 중첩이 가능하다.

가장 바깥쪽의 스코프를 전역 스코프라고 부르고 전역이 아닌 다른 스코프는 전부 지역 스코프 이다.

지역 스코프에 선언한 변수는 지역 변수, 전역 스코프에서 선언한 변수는 전역 변수. 

지역 변수는 전역 변수보다 더 높은 우선 순위를 가짐.

전역변수는 어디서든 접근이 가능하다 하지만 전역 변수를 많이 만드는건 좋은 선택이 아니다. 

너도나도 똑같은 이름으로 전역 변수를 선언하려고 한다면 분명 문제가 발생할텐데 이를 side effect라고 합니다.

 

블록 스코프 

중괄호를 기준으로 범위가 구분이 된다.  블록({})내부에서 선언된 변수는 해당 블록에서만 접근 가능 

화살표 함수는 함수 스코프가 아닌 블록 스코프 이다.

 

함수 스코프 

function 키워드가 등장하는 함수 선언식 및 함수 표현식은 함수 스코프를 만든다.

 

var

var로 정의한 변수는 블록 스코프를 무시하고, 함수 스코프만 따른다. 화살표 함수의 블록 스코프는 무시하지 않음

function hello() {
  for (var i=0; i<12; i++) {
    ...
  }
  console.log(i)   //접근가능
}

hello();  //12

 블록 스코프를 무시하니까 바깥에서도 접근이 가능 한거다. 그리고 선언 없이 변수를 할당하면 해당 변수는 var로

선언한 전역 변수처럼 취급 된다. 

근데 var이 아닌 let이나 const로 선언을 했다면 접근이 불가능하다.

var let const 정리 : https://broadway.tistory.com/entry/%EB%B0%B1%EC%A4%80-%EB%8B%A8%EA%B3%84%EB%B3%84%EB%A1%9C-%ED%92%80%EC%96%B4%EB%B3%B4%EA%B8%B0-%EC%9E%85%EC%B6%9C%EB%A0%A5%EA%B3%BC-%EC%82%AC%EC%B9%99%EC%97%B0%EC%82%B0    

 

회고 

오늘은 그렇게 막 어렵진 않았다 근데 클로저를 살짝 보긴 했는데 그건 좀 이해하기가 힘듬 내일 정리할 예정 

내일 클로저 마무리를 하기에 . 어쨋든 그리고 오늘 알고리즘 문제를 품 백준 단계별로 풀어보기 2단계 딱히 어려운 문제는 없었고 입력 받는 부분을 다 까먹어서 보고 하긴 했는데 구현하는 것에는 문제 없었다. 

아 그리고 오늘 병원감 아킬레스건염 때문에 병원 처음 간곳은 거르고 두번째 갔는데 만족! 

Comments