"JavaScript 스코프"의 두 판 사이의 차이

46번째 줄: 46번째 줄:
}
}
foo();
foo();
console.log(bar);
console.log(bar); // Hello
</source>
</source>
:→ foo 함수 안에서 var 없이 bar 변수가 생성되었음. 함수의 안에 변수가 있음에도 불구하고 함수 밖에서 bar를 사용하여 정상 출력하였음


==같이 보기==
==같이 보기==

2016년 11월 12일 (토) 07:52 판

1 개념

JavaScript Scope
자바스크립트 스코프, 자바스크립트 유효범위
  • JavaScript에서 변수, 객체, 함수의 접근 가능 범위

2 전역 변수

  • 전역 변수는 함수 안과 밖 어디에서든 접근이 가능한 변수임
var a = 1; // 전역 변수
function printNumber() {
    console.log(a); // 1
}
printNumber();
→ printNumber함수 안에서 함수 밖에 있는 전역 변수 a에 접근 가능

웹에서 전역변수는 window객체에 소속됨

3 지역 변수

  • 함수 안에서만 접근 가능한 변수
var a = 1; // 전역 변수

function printNumber() {
    var a = 2; // 지역 변수
    console.log(a); // 2
}
printNumber();
→ printNumber함수 안에서 지역 변수 접근
function printNumber() {
    var a = 2;
}

printNumber();
console.log(a); // Uncaught ReferenceError: a is not defined(…)
→ 함수 밖에서 printNumber함수의 지역 변수 접근이 되지 않음

4 암묵적 전역 변수

  • var 키워드 없이 변수를 생성하면 함수 안이라도 전역변수로 생성 됨
function foo() {
    bar = "Hello";
}
foo();
console.log(bar); // Hello
→ foo 함수 안에서 var 없이 bar 변수가 생성되었음. 함수의 안에 변수가 있음에도 불구하고 함수 밖에서 bar를 사용하여 정상 출력하였음

5 같이 보기

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}