javascript

scope

woooonikk 2023. 3. 3. 11:18

Scope 는 한국 말로 범위, 영역이라고 한다

 

변수를 만들고 값을 할당하면 어디서든 그 변수의 이름으로 할당된 값을 가져올 수 있었다

하지만 변수에는 유효한 범위가 있어서 그범위를 벗어나게 되면 오류가 발생한다

지금 이 오류는 x라는 변수를 선언하지 않았기 때문이다

상황에 따라서는 변수를 선언했음에도 이런 오류를 만날 수 있다

 

변수의 유효범위

 

똑같이 3이 출력이 된다

그런데 함수 밖에서 x를 출력하면 어찌될까?

그럼 오류난다

 

자바스크립트 에서는 중괄호{} 로 감싼 코드를 블록문(Block Statement) 이라고 한다

이런 블록문 안에 선언된 변수들을 지역변수(Local Variable) 이라고 한다

이 지역변수는 블록문 내에서만 사용할 수 있는 변수이다

즉 변수 x가 유효한 범위는 myFunction 함수 안에서만 사용 가능 하다

 

그래서 함수 밖에 있는 console.log(x); 는 변수 x 가 유효하지 않은 곳에서 사용했기 때문에

정의되지 않았다는 오류가 발생한다

 

이 변수 x를 밖에서 선언하면

둘다 적용된다

이런 변수를 전역변수(Global Variable) 라고 부른다 전역에서 사용될 수 있기 때문

 

그럼 myFunction 내부에서 똑같은 이름의 지역변수를 선언하면 어떻게 될까?

myFunction 내부에서 x라는 지역 변수가 있는지 확인 한 후 없으면 전역변수 x를 사용하고 지역변수 x 가있다면 지역변수 x를 먼저 사용한다

'javascript' 카테고리의 다른 글

if 문  (0) 2023.03.03
상수  (0) 2023.03.03
옵셔널 파라미터  (0) 2023.03.02
return 2  (0) 2023.03.02
할당 연산자  (0) 2023.03.02