답변:
'use strict';
줄 바꿈 함수의 첫 번째 명령문으로 포함 하므로 해당 함수에만 영향을줍니다. 이렇게하면 엄격하지 않은 스크립트를 연결할 때 문제가 발생하지 않습니다.
Douglas Crockford의 최신 블로그 게시물 Strict Mode Is Coming To Town을 참조하십시오 .
그 게시물의 예 :
(function () {
'use strict';
// this function is strict...
}());
(function () {
// but this function is sloppy...
}());
업데이트 : 즉각적인 기능 (예 : 노드 모듈)으로 랩핑하지 않으려는 경우 경고를 비활성화 할 수 있습니다.
대한 JSLint (당 Zhami ) :
/*jslint node: true */
대한 JSHint :
/*jshint strict:false */
또는 ( Laith Shadeed 당 )
/* jshint -W097 */
JSHint에서 임의의 경고를 사용하지 않으려면 JSHint 소스 코드 에서 맵을 확인하십시오 ( docs에 자세히 설명되어 있음 ).
업데이트 2 : JSHint 는 node:boolean
옵션을 지원합니다 . .jshintrc
github 참조하십시오 .
/* jshint node: true */
-1
/*jshint strict:false */
, 내가하고있는 일을 더 명확하게하는 것입니다 (알지 못하는 숫자 코드에 특별한 이점이없는 한)
"use strict";
파일 당 한 번만 지정 하면됩니다.
대신 jshint 를 사용하는 것이 좋습니다 .
를 통해이 경고를 억제 할 수 있습니다 /*jshint globalstrict: true*/
.
라이브러리를 작성하는 경우 nodejs와 마찬가지로 코드가 모듈로 캡슐화 된 경우 전역 엄격을 사용하는 것이 좋습니다.
그렇지 않으면 라이브러리를 사용하는 모든 사람을 엄격 모드로 강제 설정합니다.
strict: 'global'
지금 시도 하고 jshint.com/docs/options/#globalstrict를
Cross Platform JavaScript 블로그 게시물에 따라 Node.js / browserify 응용 프로그램을 만들기 시작했습니다 . 그리고 새로운 Gruntfile이 jshint를 통과하지 못했기 때문에이 문제가 발생했습니다.
다행히 Grunt 의 Leanpub 책에서 답을 찾았습니다 .
지금 시도하면 Gruntfile을 스캔하고 몇 가지 오류가 발생합니다.
$ grunt jshint Running "jshint:all" (jshint) task Linting Gruntfile.js...ERROR [L1:C1] W097: Use the function form of "use strict". 'use strict'; Linting Gruntfile.js...ERROR [L3:C1] W117: 'module' is not defined. module.exports = function (grunt) { Warning: Task "jshint:all" failed. Use --force to continue.
두 가지 오류는 Gruntfile이 Node 프로그램이기 때문에 기본적으로 JSHint는
module
및의 문자열 버전을 인식하거나 허용하지 않습니다use strict
. Node 프로그램을 받아 들일 JSHint 규칙을 설정할 수 있습니다. jshint 작업 구성을 편집하고 옵션 키를 추가합시다 :jshint: { options: { node: true }, }
node: true
jshint에 추가 하여 options
jshint를 "노드 모드"로 설정하면 두 가지 오류가 모두 제거되었습니다.
모든 코드를 엄격히 사용 "use strict";
하려면 JavaScript 시작 부분에 추가 하십시오.
그러나 일부 코드 만 엄격하게 사용하려면 함수 형식을 사용하십시오. 어쨌든, 나는 당신이 더 나은 코더가 될 수 있기 때문에 JavaScript의 시작 부분에서 그것을 사용하는 것이 좋습니다.
"use strict";
JS 파일의 맨 위에 만 놓을 때 실제로이 오류가 발생 하므로 완전히 사실이 아닐 수도 있습니다.
"use strict";
코드 를받지 않습니다 . "use strict;"
함수로 싸인 경우 에만 허용 됩니다. (JS_Hint_를 사용하면 전역 양식을 사용할 수 있습니다. 필요한 설정은 위의 답변을 참조하십시오).