Js 기초 문법.07

chltndid724·2019년 7월 2일
0

🎪Scope

자바스크립트에서 스코프란 어떤 변수들에 접근할 수 있는지를 정의합니다. 종류는 두가지가 있습니다.

전역스코프(코드 어디에서든지 참조가능)
지역스코프(함수 코드 블록이 만든 스코프로 함수 자신과 하위 함수에서만 참조) 입니다.

var whoAmI = 'globalScope'; // 전역

function localFunc () {
  var whoAmI = 'localScope';
  console.log(local);
} //지역

localFunc(); // ?
console.log(whoAmI); // ?

위 문제에서 전역에 선언된 변수는 어디서든 참조할 수 있습니다.
하지만 localFunc 내에서 선언된 변수는 localFunc 내부에서만 참조할 수 있고 외부에서는 참조할 수 없습니다.

  • 함수 레벨 스코프
    함수 내에서 선언된 매개변수와 변수는 함수 외부에서는 유효하지 않다.
let global = '100'; // 전역변수

(function () {
  let local = '200'; // 지역변수
})(); 
/*
즉시 실행 함수 
(function () {
	....
 })(); 
 말 그대로 함수를 즉시 실행시켜 준다.
*/
console.log(global);	// 100
console.log(local);		// 'local' is not defined

자바스크립트는 함수 레벨 스코프를 사용한다. 함수 내에서 선언된 매개변수와 변수는 함수 외부에서 유효 하지 않다.
  • 예제 1
let iAm = 'global';

function localOne() {
  let iAm = 'local';
  console.log(iAm);

  function localTwo() {  // 내부함수
    console.log(iAm); // ?
  }

  localTwo();
}
localOne()
console.log(iAm); // ?

답은 local, local , global이 나온다

예제 1에서 localTwo() 실행하면 iAm을 찾는다. 즉, 내부함수는 자신을 포함하고 있는 외부함수의 변수에 접근할 수 있다.

profile
힘들땐 블로그 하나더 적자!!![ Suyang ]

0개의 댓글