[JavaScript]-스코프(Scope)

신보연·2023년 3월 3일
0

스코프(Scope):

스코프란 변수의 유효 범위를 의미.

전역스코프(Global Scope):

  • 어느 곳이든지 접근할 수 있다는 의미.

지역스코프(Local Scope):

  • 해당 지역에서만 접근할 수 있다는 의미.

함수(Function) 스코프:

  • 함수 내 선언한 변수 접근은 해당 함수 안에서만 가능.(외부에서 직접 변수 접근불가)
function friend(){
  var name = '보연'; //지역변수
  console.log(name);
}

friend(); //보연
console.log(name) //undefined

블록(Block) 스코프:

ES6문법인 let, const 선언된 변수,함수( {} 관호안에서만 변수 접근가능)들이 블록 스코프,
블록( {} )이 유효 범위.

function friend(name){
  if(name){
    let welcome = '나는 '+ name + ' 입니다.'
    console.log(welcome); //나는 보연 입니다. (접근가능)
  }
  console.log(welcome); //undefined (접근불가)
}

friend('보연');

let , const 를 주로 사용 :

  • var 는 블록스코프를 무시 , 재선언을 해도 에러 ❌
    (같은 스코프에서 동일이름의 변수를 재선언하는것은 버그를 유발)

  • 전역변수를 var로 선언하는경우 문제가 될수있다.
    (var로 선언한 전역 변수가 window 기능을 덮어씌워서 내장기능을 사용할 수 없게 만들 수 있다.)

  • 선언키워드(var, let, const)없이 변수 할당 ❌
    age는 선언한 적이 없으나, 값을 할당하면서 마치 var로 선언된 전역 변수처럼 작동.(실수 방지 위해 Strict Mode 사용- js 파일 상단에 'use strict'입력)

0개의 댓글