전역 변수로 '창'이있는 JSLint의 문제
그래서 JSLint 를 사용하여 오류를 감지하고 있습니다. 마음에 들지 않는 일부 옵션을 해제했지만 window
전역 변수 를 사용할 수있는 방법이 보이지 않습니다 . 음, Yahoo 위젯 옵션이 있지만 그것은 과잉입니다.
'창'사용에 대한 거래는 무엇입니까? JSLint가 오류를 일으키는 이유는 무엇입니까?
/*jslint browser: true*/
이것에 대한 올바른 해결책이었습니다. 2017-07-07부터는 전역 지시문을 수동으로 설정해야합니다. 로부터 JSLint 문서 :
/ * global * / 지시문은이 파일에 사용할 수있는 전역 집합 (일반적으로 함수 및 함수를 포함하는 개체)을 지정하는 데 사용됩니다. 이것은 ES6 모듈이 나타나기 전에 소스 파일을 함께 연결하기 위해 브라우저에서 일반적으로 사용되었습니다. 전역 변수의 사용은 강력히 권장하지 않지만 불행히도 웹 브라우저에서는이를 사용해야합니다. / * global * / 지시문은 브라우저 가정 옵션이 선택된 경우에만 사용할 수 있습니다.
따라서 다음을 사용해야합니다.
/*jslint browser */
/*global window */
다음과 같이 스크립트에 주석을 추가하십시오.
/*global window */
... your script goes here
이 주석은 window
다른 곳에서 정의 된 JSLint를 알려줍니다 .
참조 : http://www.JSLint.com/lint.html ,
JSLint는 또한
/* global */
이 파일에 사용 된 변수가 다른 파일에 정의되어 있음을 JSLint에 나타낼 수 있는 주석을 인식 합니다. 주석에는 쉼표로 구분 된 이름 목록이 포함될 수 있습니다. 각 이름 뒤에는 선택적으로 콜론이 올 수 있으며 true 또는 false, true는 변수가이 파일에 할당 될 수 있음을 나타내며 false는 할당이 허용되지 않음을 나타내며 기본값입니다.
스크립트에 주석을 적용 할 필요없이 기본적으로 창을 전역으로 만들 려면 로컬 파일 predef:["window"]
의 JSLINT
함수 내에서 개체 리터럴 매개 변수에 추가 할 수 있습니다 jslint.js
.
BTW, 나는 predef:["$","window"]
jQuery를 전역으로 사용 하고 있습니다.
최신 정보:
이 답변은 2009 년에 정확했습니다. 현재로서는 /*jslint browser: true*/
Matt Clarkson이 제공 한 솔루션을 사용해야합니다 .
JSLint에게 window
전역 객체로 인식 하고 있음을 알리 려면 파일 맨 위에 다음 지시문을 추가하십시오.
/*global window*/
나는 다음을 사용할 수 있었다.
/*jslint browser: true */
그러나 이것은 더 이상 작동하지 않는 것 같습니다. 이제 옵션 에 관한 JSHint 도움말 에 따르면 browser
:
self
또는 제공하지 않습니다window
. 두려운 전역 개체의 별칭을 직접 요청해야합니다.
언제 그 변화가 있었는지 잘 모르겠지만 한동안 저를 괴롭 혔습니다.
모든 경고를 제거하려면이 코드에서 위의 두 답변을 모두 사용해야했습니다.
/*jslint browser:true*/
/*global window*/
// eventBoiler v0.1.1 by @ryanpcmcquen
// https://github.com/ryanpcmcquen/eventBoiler
(function (win, doc) {
'use strict';
win.eventBoiler = function (selector, typeOfEvent, func) {
doc.querySelector(selector).addEventListener(typeOfEvent, func);
};
win.eventBoiler.all = function (selectors, typeOfEvent, func) {
Array.prototype.slice.call(doc.querySelectorAll(selectors)).map(function (i) {
i.addEventListener(typeOfEvent, func);
});
};
}(window, document));
그래서 저에게 이것은 JSLint 웹 사이트를 사용할 때의 해결책입니다 .
/*jslint browser:true*/
/*global window*/
모든 파일에서 이것을 지정하지 않으려면 다음과 같이 eslintrc 구성 파일 에서 전역 적으로 설정할 수 있습니다 .
"globals": {
"window": true,
}
참고URL : https://stackoverflow.com/questions/1404078/jslints-issue-with-window-as-a-global-variable
'Programing' 카테고리의 다른 글
enum 값을 int로 직렬화하는 방법은 무엇입니까? (0) | 2020.10.18 |
---|---|
Vista에서 Environment.GetFolderPath (… CommonApplicationData)가 여전히 "C : \ Documents and Settings \"를 반환합니다. (0) | 2020.10.18 |
쉘 명령의 실행 시간 인쇄 (0) | 2020.10.18 |
문자열 앞의 C # '@' (0) | 2020.10.18 |
Java에서 현재 날짜에 한 달을 어떻게 추가합니까? (0) | 2020.10.18 |