-
카테고리
-
세부 분야
프론트엔드
-
해결 여부
미해결
질문있습니다.
21.08.17 20:42 작성 조회수 140
0
선생님 안녕하세요. 인터렉티브 웹사이트 강의 중간까지 듣고
애플클론 강의를 듣고 있습니다. 이런 강의를 만들어주신거에 감사함을 느낍니다.
인터렉티브 웹사이트에서도 언급하셨지만
전역변수 사용을 막기위해서 현 강의들에서는 익명함수안에서 정의를 하시는 걸로 이해하고 있습니다.
그러지 않고, 각 js 파일에서 다음과 같이 처리하는 것도, 블록 Scope 안에서 사용하는 것이랑은 다른걸까요 ?
{
const arr = [1, 2, 3];
}
console.log(arr);
답변을 작성해보세요.
0
1분코딩
지식공유자2021.08.23
const나 let을 사용하면 알고계신 것과 같이 블록 {} 스코프로 동작을 하는데요, 그래서 작성하신 것처럼 하셔도 되는데, 함수를 이용해 모듈을 만들거나 아래처럼 실행할 때 외부에서 사용하는 변수를 안전하게 치환해서 사용할 일이 있기도 해서 관례적으로 함수로 많이 사용해오던 경향이 있습니다.
(function ($) {
// 이런 식으로 jQuery 변수를 $로 안전하게 치환
})(jQuery);
저도 버릇처럼 함수로 사용하고 있었는데, 이런게 필요한 경우가 아니라면 작성하신 것 처럼 하시는게 더 간단하고 좋을 수 있을 것 같습니다.
참고로, (이미 알고 계실 것 같지만^^) ES6의 모듈을 사용하면 모듈 단위로 변수 스코프가 만들어져서 따로 함수로 감싼다거나 할 필요가 없습니다.
답변 1