Notice
Recent Posts
Recent Comments
Link
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

백고등어 개발 블로그

자바스크립트 스코프와 "let" vs "const" vs "var" 키워드 비교 본문

javascript

자바스크립트 스코프와 "let" vs "const" vs "var" 키워드 비교

백고등어 2020. 9. 15. 22:14

- 자바스크립트는 변수나 상수, 매개변수가 생성될 때 스코프가 정해집니다.

- 이때 각 변수, 상수, 매개변수가 미치는 범위를 스코프라고 합니다.

- 스코프에는 글로벌 스코프와 로컬 스코프가 존재합니다.

 


글로벌 스코프 VS 로컬 스코프 비교

- 스코프란 현재 접근할 수 있는 변수들의 범위를 뜻합니다.

글로벌 스코프

- 글로벌 스코프란 전역 변수 또는 함수를 뜻하기도 합니다.

- 내부 스코프(함수의 내부 스코프 등..) 에서 전역 변수 또는 함수에 접근  할 수 있습니다 

- 예를 들면 아래와 같습니다

- myName 변수는 글로벌 스코프를 갖는 전역 변수로 선언되었습니다 즉, 함수 내부에서도 myName 변수에 접근할 수 있습니다

로컬 스코프

- 로컬 스코프란 블록 또는 함수 내에서만 접근할 수 있는 변수이며, 지역 변수를 뜻하기도 합니다.

- 첫 번째 글로벌 스코프의 예시에서 myName은 전역 변수로 선언되었지만, 두 번째 경우에서 myNamecallingName 함수 내의 지역 변수로도 선언되었습니다. 따라서 해당 함수 내에서 myName 변수를 호출할 경우 HwiJeong 이 출력됩니다.

- 주의해야 할 것은 두번째 myName 로컬 변수가 글로벌 변수를 덮어쓰는 것이 아니며, 두 변수는 각각 다른 데이터로 존재한다는 것 입니다.

 

let VS const VS var 키워드 간단 비교

  let const var
유효 범위 Block Scope Block Scope Function Scope
값 재정의 Yes No Yes
재선언 No No Yes

더 자세한 내용은 아래의 블로그를 참고해주시길 바랍니다

 

var,let,const 비교

var, let, const을 비교해보자

velog.io

 

전역 변수와 window 객체

- 글로벌 스코프에서 선언된 변수 또는 함수, 그리고 var 키워드를 이용해 선언된 변수는 window 객체와 연결됩니다.

- 전역 범위에 너무 많은 변수를 선언하지 않도록 주의 하시길 바랍니다!

 

선언없이 초기화된 변수

- 선언없이 초기화할 경우 'strict' 모드를 사용하지 않는 한 버그가 발생하는 코드를 작성할 수도 있습니다

- 'strict' 모드란?

- ECMAScript 5에서 처음으로 소개된 strict 모드는 자바스크립트 코드에 더욱 엄격한 오류 검사를 적용해 줍니다.

- strict 모드는 자바스크립트 파일의 맨 위에 "use strict" 지시어를 사용하여 선언할 수 있습니다.

strict 모드를 사용하여 변수 에러 검사