2014-12-02 3 views
0

안녕하세요 여러분, JSLint를 사용하는 데 익숙해 지려고하고 있습니다. '엄격한 사용'경고가 표시되고 함수에 추가 한 후에도 여전히 '사용이 엄격한'문장이 생깁니다."use strict"를 사용했지만 여전히 경고를받습니다.

fs.readFile('file', 'utf8', function (err, data) { 
    if (err) { "use strict"; throw err; } 
    var obj = JSON.parse(data); 
    }); 

제가 잘못하고있는 것에 호기심이 있었습니까?

+0

내부 함수의 첫 번째 줄 (if 문 앞에)에서''strict use ''를 사용하면이 문제를 해결할 수 있습니다. – BeNdErR

답변

1

나는 이것에 대해 100 % 긍정적이지는 않지만 코드에 포함되지 않은 주어진 .js 파일의 맨 위에 'use strict';만을 사용했습니다. 그리고 그렇게 한 후에는 경고를받지 못했습니다. 아마 jslint가 그것을 찾는다.

또한 전체 스크립트 (파일 상단) 또는 주어진 함수 (함수 상단, 시작 중괄호 바로 뒤)로 범위를 지정해야합니다. 따라서 jslint의 기능에 관계없이이를 수정해야합니다.

1

"use strict" 지시문의 위치가 문제입니다.

용도 :

// Top of script file 
"use strict"; 
/* ... code ... */ 

또는 :

function b() { 
    "use strict"; 
    /* ... code ... */ 
} 

당신은 if 지점의 블록 내부에 그것을 사용하고 있습니다.

+2

그것은 일반적인 규칙이 아닙니다! ' "엄격한"; "을 사용하는 것은 파일의 첫 번째 문장이거나, 적용 할 함수의 첫 번째 문장이어야합니다. – hobbs

+0

@hobbs가 맞습니다. 그렇지 않으면 웹 브라우저에서 무시되고 기능이 다르게 실행됩니다. 이 답변을 수정하십시오. –

+0

죄송합니다 - 이미 삭제 된 댓글입니다. 당신이 "기능의 첫 문장"이라고 말한 곳을 놓쳤습니다. @BenjaminGruenbaum이 싫어하는 alexfreiria의 대답이 무엇이 잘못된 것인지 알아 내려고 노력했습니다. alexfreiria의 편집은 단지 MDN에'use strict' 링크를 추가하는 것이 었습니다; 나는 그 답을 잘못 본 것이 없다. – ruffin

관련 문제