변수 선언 시 주의점

Chunli91·2022년 9월 6일
0

자바스크립트

목록 보기
14/24
post-custom-banner

var로 선언된 전역 변수 및 전역 함수는 window 객체에 속하게 된다
브라우저에는 window라는 객체가 존재하는데 이는 브라우저 창을 대표하는 객체이다
하지만 창과 관계없이 별개로 전역 항목도 담고 있다.

var로 선언된 전역 변수와 전역 함수가 window 객체에 속한다.

var name = '춘리';
console.log(window.name); // 춘리

function foo() {
	console.log('ryu');
}

console.log (foo === window.foo); // true

전역 변수는 어디서나 접근 가능한 편리한 변수지만 대신 다른 함수나 로직에 의해 의도치 않은 변경이 있을 수 있다. 애플리케이션을 만들 때는 내가 직접 작성하지 않은 수많은 다른 함수와 로직이 포함되기 때문인데, 이를 부수 효과(side effect)라고 부른다. 때문에 전역 변수를 최소화 하는 것이 좋다.

그러므로 let이나 const를 주로 사용하는 것이 낫다. var는 블록 스코프를 무시하며, 재선언을 내도 에러를 내지 않는다. 반면에 var로 선언하는 것은 브라우저의 내장 기능을 사용하지 못하게 만들 수도 있습니다.

또한 선언 (var, let, const) 없이 변수를 할당하면 안된다. 선언 없이 변수를 할당하면, 해당 변수는 var로 선언한 전역 변수처럼 취급됩니다.

이런 실수를 방지하고 싶다면 Strict Mode를 사용할 수 있다. Strict Mode는 브라우저가 보다 엄격하게 작동하도록 만들어줍니다. 앞서 언급한 것처럼 "선언 없는 변수 할당"의 경우도 Strict Mode는 에러로 판단합니다.

Strict Mode를 적용하려면, js 파일 상단에 'use strict' 라고 입력하면 됩니다. (따옴표 포함)

profile
30대에 새로운 도전을 시도하는 사람입니다.
post-custom-banner

0개의 댓글