Kimsora✨
article thumbnail
Published 2022. 9. 6. 15:47
스코프 Javascript
320x100
반응형

스코프의 정의는 “변수 접근 규칙에 따른 유효 범위”이다. 식별자(변수, 함수, 클래스)에 접근할 수 있는 범위가 존재한다.범위는 중괄호(블록) 또는 함수에 의해 나눠지며 그 범위를 스코프라고 부른다.

스코프는 중첩이 가능하며안쪽 스코프에서 바깥쪽 스코프로는 접근할 수 있지만 반대는 불가능하다

가장 바깥쪽의 스코프를 전역 스코프(Global Scope)이며 전역이 아닌 다른 스코프는 전부 지역 스코프(Local Scope)이다.

전역 스코프에서 선언한 변수는 전역 변수이고 지역 스코프에서 선언한 변수는 지역 변수이다.

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

 

스코프의 종류

함수 스코프

  • 자바스크립트는 기본적으로 함수 스코프를 따르는 언어
  • 함수스코프를 따른다? => 새로운 함수가 생성될때마다 새로운 스코프가 발생한다.
    - 함수 몸체에 선언한 변수는 해당 함수 안에서만 접근할 수 있음
  • 함수스코프 -> 지역스코프

블록 스코프

  • 블록스코프는 말 그래도 블록 {}이 생성될 때마다 새로운 스코프가 형성되는 것을 의미
  • 원래 자바스크립트는 함수 스코프를 따르지만, let과 const 키워드의 등장으로 블록 스코프를 형성하는 것도 가능해졌다
  • 화살표 함수는 블록 스코프로 취급

스코프와 var, let, const 

변수 선언 키워드 세 가지의 ‘차이점’ 그리고 ‘스코프 유효 범위’

const 
유효 범위 : 블록 스코프 / 함수 스코프값 재할당 : 불가능 /재선언 : 불가능

 let 
유효 범위 : 블록 스코프 / 함수 스코프값 재할당 : 가능  / 재선언 : 불가능

var 
유효 범위 : 함수 스코프값 /재할당 : 가능/ 재선언 : 가능

 

전역 객체(window)의 이해

Window 객체는 only 브라우저에만 존재하는 객체(브라우저의 창(window)를 의미하는 객체)

 함수 선언식으로 함수를 선언하거나 var 키워드로 변수를 선언하면 window 객체에 속해진다.

 

 전역 변수는 최소화하기

전역 변수는 어디서나 접근이 가능하며  var 키워드는 블록 스코프를 무시한다.

재선언과 재할당을 할 수 있으며 전역 변수를 var로 선언해서 브라우저의 내장 기능을 못하게 만들 수도 있다

=>부수효과(side effect) 발생

선언 없는 변수 할당 금지

선언 없이 변수를 할당하면 해당 변수는 var로 선언한 전역 변수 처럼 취급된다.

실수를 방지하기 위해 Strict Mode를 사용하며 Strict Mode는 브라우저가 보다 엄격하게 작동하도록 만들어준다.

“선언 없는 변수 할당”의 경우도 에러로 판단해준다.적용하려면, js 파일 상단에 ‘use strict’라고 입력하면된다.

 

728x90
반응형

'Javascript' 카테고리의 다른 글

Spread / Rest 문법  (0) 2022.09.07
클로저 ★  (0) 2022.09.06
원시 자료형과 참조 자료형  (0) 2022.09.06
객체 (Object)  (2) 2022.09.05
배열의 매서드  (2) 2022.09.02
profile

Kimsora✨

@sorarar

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!

검색 태그

WH