scope, hoisting이해

jini.choi·2022년 5월 17일
0

유용한 JS 문법

목록 보기
9/9

scope 이해하기

  • scope : 우리가 변수 혹은 함수를 선언하게 될 떼 해당 변수 혹은 함수가 어디서 어디까지 유효한지에 대한 범위

  • scope의 종류
    |### scope 이해하기

  • scope : 우리가 변수 혹은 함수를 선언하게 될 떼 해당 변수 혹은 함수가 어디서 어디까지 유효한지에 대한 범위

  • scope의 종류

Global(전역) scopeFunction scopeBlock scope
코드의 모든 범위 유효특정 함수 내부에서만 유효특정 함수 내부에서만 유효
const value = 'hello!'; //Global scope

function myFunction(){
	const value = 'bye!'; //Function scope
	if(true){
		const value = 'world'; //block scope
		console.log('block scope: ');
		console.log(value); //wolrd
	}
	console.log('Function scope: ');
	console.log(value); //bye!
}

myFunction();
console.log('global scope: '); //Global scope
console.log(value); //hello!

hoisting 이해하기

  • const, let에서는 hoisting이 발생하지 않음, var에서 발생
  • hoisting이란 JS에서 아직 선언되지 않은 함수 또는 변수를 끌어 올려서 사용할 수 있는JS의 작동방식
  • JS엔진이 코드를 해석하는 과정에서 위에 선언 됐다고 받아드리기 때문(주석처리 한 부분)
  • 코드를 이해하기 어려워 질 수 있기 떄문에 피하는게 좋음
  • ES5로 트랜스컴파일을 해야한다.
    따라서 아직은 var가 어떻게 동작하는지 이해하고 있어야 한다.
//function myFunction() {
//	console.log('hello world');
//}

myFunction();

function myFunction() {
	console.log('hello world');
}

이 글은 패스트캠퍼스 '프론트엔드(React)올인원패키지Online'을 수강하며 정리한 노트입니다.
https://fastcampus.co.kr/search?keyword=%ED%94%84%EB%A1%A0%ED%8A%B8%EC%97%94%EB%93%9C

profile
개발짜🏃‍♀️

0개의 댓글