개발공부/개념정리 | Javascript

스코프

개발집사 2022. 7. 11. 11:37

 

전역 스코프(Global Scope):  가장 바깥쪽의 스코프

지역 스코프(local Scope): 전역이 아닌 다른 스코프

※우선순위: 지역 변수 > 전역 변수

 

스코프의 종류

1.블록 스코프

-중괄호를 기준으로 범위가 구분됨.

※ 화살표 스코프도 블록 스코프로 취급.

-블록 스코프 안에서 정의된 변수는 블록 범위를 벗어나는 즉시 접근 불가.

  -> 블록범위를 벗어나는 console.log()는 ReferenceError

 

2.함수 스코프

function 키워드가 등장하는 함수 선언식 및 함수표현식으로 만들어짐.

 

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

let : var 보다 사용권장.

const: 변하지 않는 값 정의. 값 재할당할 경우 TperError

var: 블록스코프 중 화살표 함수는 무시하지않음. 함수 스코프의 최상단에 선언

     : 브라우저의 내장 기능을 사용하지 못하게 만들 수 있다.

 

선언 없이 변수 할당 하지 말 것!

-선언없이 변수 할당할 경우, 변수는 var로 선언한 전역변수처럼 취급.

 

window 객체

-브라우저 창을 대표하는 객체

-브라우저 창과 관계없이 전역 항목도 담고 있음.

-var로 선언된 전역 변수와 전역 함수가 window 객체에 속함

 

실수 방지를 위해서 js파일 상단에
'use strict'
입력 후 사용

 

종합퀴즈

get함수 스코프내에 x 변수가 별도로 선언되어 있지 않음. 20은 사용되지 않는 값

let x = 30;
function get () {
	return x;
}

let result = get(20); //30

 

get함수에 매개변수 x가 선언되어 있음. get함수가 반환하는 x는 전역스코프의 x가 아닌 별도의 매개변수.

let x = 30;
function get (x) {
	return x;
}

let result = get(20); //30

'개발공부 > 개념정리 | Javascript' 카테고리의 다른 글

spread/rest  (0) 2022.07.11
클로저  (0) 2022.07.11
원시 자료형 vs 참조 자료형  (0) 2022.07.11
문자열  (0) 2022.06.27
조건문  (0) 2022.06.27