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로 바뀌게 된다.