인프런 커뮤니티 질문&답변

vocolor님의 프로필 이미지

작성한 질문수

자바스크립트 비기너: 튼튼한 기본 만들기

8. strict 모드, [코딩 시간]

안녕하세요? 선생님?

작성

·

190

2

use strict관련하여 질문이 있습니다.

아래와 같이 작성후 실행하였는데 제가 생각한 결과가 나오지 않습니다.

"use strict";
try {
    books = "변수를 선언하지 않음";
    console.log(books);
catch(error) {
    console.log("run catch");
};
console.log("");

이렇게 하면 error를 캐치해서 "run catch"를 출력해야 할 것 같은데 "변수를 선언하지 않음"이 출력되네요. 제 환경에서 use strict가 적용이 되지 않는것 같습니다. 

제가 무얼 잘못 했거나 잘못 이해한 것일까요?

답변 5

2

보통 아래 코드를 모두 작성하고 실행한 후에, 추가로 상단에 use strict를 삽입하고 파일을 저장했을때 콘솔 내에서 수정된 부분 로딩이 반영되지 않았을때 이런 현상이 일어납니다. 브라우저에서 새로고침 한번 눌러주니 run script가 출력되네요. 

1

vocolor님의 프로필 이미지
vocolor
질문자

감사합니다. 선생님.

재미있게도 html 문서 안에서는 use strict가 잘 동작을 하는데 .js 문서 안에서는 var을 쓰든 안쓰든 결과가 동일하네요. 

더 공부해 보겠습니다!

0

김영보님의 프로필 이미지
김영보
지식공유자

네~~ 잊지 않고 경험을 공유해주어 고맙습니다.

0

김영보님의 프로필 이미지
김영보
지식공유자

작성된 소스 코드를 복사해서 두 가지 방법(html 파일, js 파일)으로 실행해 보았는데요, 모두 "run catch"가 출력됩니다. 크롬 최신 버젼에서 실행했습니다. 재미있는 모습이니 이유를 알게되면 공유해주세요.

0

김영보님의 프로필 이미지
김영보
지식공유자

안녕하세요. 
"use strict"를 선언하였을 때, 변수는 아래처럼 var 키워드를 사용해야 합니다. 
var books; 
books = "변수가 선언되어 있음";

또는 
var books = "var 키워드를 사용";

이외에도 있으며, use strict와 관련된 것은 MDN을 참조해주세요.
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Strict_mode

vocolor님의 프로필 이미지

작성한 질문수

질문하기