블록 스코프

1 - var 키워드로 선언한 변수의 문제점 var는 JS만의 특이한 특징을 갖고 있어 사용하는데 주의를 요구하는 키워드이다. 이를 무시하고 무분별하게 사용하게 되면 아래와 같은 문제가 발생할 수 있다. 1-1. 변수 중복 선언 허용 var 키워드를 이용해 변수를 중복 선언하면 초기화문의 유무로 다르게 동작한다. 초기화문이 있는 경우는 선언문은 자바스크립트 엔진에 의해 var 키워드가 없는 것처럼 동작한다. 초기화문이 없는 경우는 변수 선언문은 무시된다. 변수를 중복 선언하게 되면 의도치 않게 먼저 선언한 변수의 값이 변경될 수 있는 문제가 발생한다. 1-2. 함수 레벨 스코프 var 키워드로 변수를 선언하면 오직 함수의 블럭만을 지역 스코프로 인정한다. 이것은 함수 이외의 다른 블럭(조건문 등 {}로 ..
var, let, const 모두 변수를 선언하는 키워드이다. let과 const는 ES2015(ES6)에서 등장했으며 여러가지 다른 특성을 갖는다. var let const 유효 범위(스코프 범위) Function Scope Block Scope Block Scope 재할당 가능 가능 불가능 재선언 가능 불가능 불가능 1. 스코프 규칙 스코프에 관한 글 var는 함수 스코프를 갖는다. 하지만, let과 const는 블록 스코프를 갖는다. 1-1 var var 키워드는 함수 스코프(Function Scope)이다. 이는 생성된 함수 스코프 내에서만 사용할 수 있으며, 외부에 선언된 경우는 전역 범위를 갖는다. var age = 24; function foo () { var name = "JuHyeon" ..
4. 스코프 역활을 하는 블록 JS에서 함수가 가장 보편적이고 널리 퍼진 디자인 접근법 이지만, 다른 스코프 단위도 존재하며 이를 이용하면 더 깔끔한 코드를 작성할 수 있다. 예를 들어 블록 스코프를 보자. JS는 지원하지 않지만 아래의 코드같은 모습은 많이 봤다. for(let i = 0; i < 10; i++){ ... } 변수 i를 for 반복문의 시작부에 선언하는 이유는 i를 오직 for 반복문과 관련해서 사용하려하기 때문이다. 블록 스코프의 목적은 변수를 최대한 사용처 가까이에서 최대한 작은 유효 범위를 갖도록 선언하는 것이다. 위의 코드에서는 그 목적을 제대로 반영하는 것 같다. 4.1. with with은 사용하게 되면 동작 속도가 저하되지만, 블록 스코프의 형태를 보여주는 한 예로 with..
58청춘
'블록 스코프' 태그의 글 목록