Levelup 5 Scope

어니언·2023년 1월 30일
0
post-thumbnail

스코프(scope)변수참조의 유효범위이다.

스코프는 전역스코프와 지역스코프 두가지로 나뉜다.

전역스코프 : 전역스코프는 블록 바깥이나 함수 바깥에 선언된 변수로 전역스코프에서 변수를 선언하면 어떤위치의 코드에서든지 사용할 수 있는 변수가 된다.

지역스코프 : 지역스코프는 코드의 특정 부분에서만 사용할 수 있는 변수로
함수스코프와 블록스코프 두가지로 나뉜다.

함수스코프 : 함수스코프란 말그대로 함수 내부에서 선언된 변수로 당연하게도 함수내부 에서만 접근이 가능하다.

블록스코프 : 블록스코프도 말그대로 블록,조건,박복문내에서만 사용가능한게 정상. but, 지금은 잘 안쓰이는 var는 바깥에서도 접근사용이 가능하다.

전역스코프 = global scope 전체 다를 의미한다.

ex ) let x = 0 글로벌 스코프내 존재

let y = 0 글로벌 스코프내 존재

const scopeTest = function() {

let z=2;

console.log(x);

console.log(y);//함수 내부는 지역스코프이다.

};

console.log(x);

onsole.log(y);

전역스코프내에서 존재하는 변수들은 지역스코프 내에서도 참조 가능하다.

지역스코프 = local scope

ex ) let x = 0 글로벌 스코프내 존재

let y = 0 글로벌 스코프내 존재

const scopeTest = function() {

let z=2; < 지역스코프 내에서 변수 선언

console.log(x);

console.log(y);//함수 내부는 지역스코프이다.

};

console.log(z); < 전역스코프에는 z라는 변수선언이 되어있지않아 undefined가 뜬다.

지역스코프의 경우함수레벨 스코프 : 선언된 함수 내부의 스코프를 말한다.

const sum = function () {

var x = 0; //함수내에 x선언되어있어

}

console.log(x) //시 undefined가뜬다

블록레벨 스코프

ex ) if(){} , for(let i=0;i<.length;i++){} 등

if() {var y = 0;}

console.log(y);

var키워드의 경우 블록레벨 스코프에서는 따르지않는다. 그러므로 정상적으로 참조된다그러기에 var사용을 지양해야한다.

let 은 블록레벨 스코프를 따른다. 그러므로 안에서 선언된 변수는 밖으로 나가지 못한다.

profile
안녕하세요.

0개의 댓글