JavaScript의 'use strict'란 무엇인가?
'use strict'는 JavaScript에서 사용되는 디렉티브(directive)로, 문자 그대로의 표현식(literal expression)입니다. 이 디렉티브는 JavaScript 1.8.5 버전에서 처음 도입되었으며, 이름 그대로 코드가 엄격 모드(strict mode)에서 실행되어야 함을 나타냅니다.
엄격 모드가 활성화되면 기존에는 조용히 무시되던 오류들이 실제 에러로 발생합니다. 예를 들어, 선언하지 않은 변수에 값을 할당하면 자동으로 전역 변수가 생성되는 대신 명시적인 오류가 발생하여 잠재적인 버그를 사전에 방지할 수 있습니다.
strict 모드 선언 방법
strict 모드를 선언하려면 스크립트나 함수의 시작 부분에 'use strict' 키워드를 추가하기만 하면 됩니다.
- 전역 범위(Global Scope): 스크립트 최상단에 'use strict'를 선언하면 해당 스크립트 전체에 적용됩니다.
- 함수 범위(Function Scope): 특정 함수 내부 최상단에 선언하면 해당 함수 안에서만 적용됩니다.
전역 스코프에서 strict 모드 선언 예제
아래 예제에서는 스크립트 맨 앞에 'use strict'를 선언했습니다. 따라서 변수 a를 선언하지 않고 값을 할당하려고 하면 오류가 발생합니다.
<!DOCTYPE html> <html> <body> <p>변수를 선언하지 않고 사용했기 때문에 오류가 발생합니다. </p> <p>F8 키를 눌러 오류를 확인해 보세요.</p> <script> "use strict"; a = 1; </script> </body> </html>
'use strict'를 사용해야 하는 이유
엄격 모드를 사용하면 다음과 같은 장점이 있습니다.
- 선언되지 않은 변수의 실수로 인한 전역 변수 생성을 차단합니다.
- 삭제할 수 없는 속성이나 변수를 삭제하려는 시도에 오류를 발생시킵니다.
- 중복된 매개변수 이름 등 문법적으로 모호한 코드를 금지합니다.
- 안전하지 않은 동작을 제한하여 더 견고하고 예측 가능한 코드를 작성할 수 있게 해줍니다.
결론적으로 'use strict'는 개발자의 실수를 조기에 발견하고, 더 안전하고 깨끗한 JavaScript 코드를 작성하도록 돕는 중요한 도구입니다.