JavaScript

var 키워드의 범위(Scope)에 대해 - Javascript

파란배개 2020. 9. 16. 09:21
var x = 30;
function get() { return x; }
function set(value) {var x = value;}

set(10);
var result = get(20);



여기서 정답은 10이 아니라 30이다.
왜냐? 

 

var의 스코프는 함수범위(Function Scope)이기 때문이다.
var 키워드의 스코프를 전역범위(Global Scope)로 착각하지 말 것.

 

 

 

그렇다면 정답이 10이 되려면 어떻게 해야 할까?

 

set 함수에서 x를 var로 선언하지 말고 바로 x = value라고 입력하면 된다.

이러면 처음에 선언했던 x가 전역변수로 취급되어 값이 value로 바뀌게 된다.