가능한 중복 :
What good is JSLint if jQuery fails the validation어떻게 JQuery가 JSLint를 전달하지 않습니까?
http://code.jquery.com/jquery-1.4.4.js
이동 www.jslint.com 거기에 붙여 넣은
는 jQuery를 유효로되어 있지 않습니다. ...가능한 중복 :
What good is JSLint if jQuery fails the validation어떻게 JQuery가 JSLint를 전달하지 않습니까?
http://code.jquery.com/jquery-1.4.4.js
이동 www.jslint.com 거기에 붙여 넣은
는 jQuery를 유효로되어 있지 않습니다. ...브라우저를 준수하는 것이 너무 많습니다. 및은 브라우저 간 호환이 가능합니다. JSLint는 유용하지만 범용 파서 만 사용할 수 있습니다. jQuery에는 오류를 던질 좋은 이유가있다.
때때로 비 호환 브라우저에서 작동하는 코드를 얻으려면 간단한 더러운 해킹이 필요합니다. '==' 예상 '==='대신 보았다
의 하나가 그들 중 하나를 살펴 보자 : 라인 231 문자 20에서
문제.
return num == null?
여기 JQuery와는 undefined
및 null
모두 확인 null
에 ==
를 이용한다. jQuery는 외부 라이브러리로 사용되므로 함수에 전달하는 입력이 undefined
또는 null
이 될지 여부를 확인할 수 없습니다. 두 가지 모두를 확인하는 것이 더 안전합니다.
JSLint를 만족시키기 위해 num === undefined || num === null
을 수행하는 것은 터무니 없습니다. 라인 446 문자 29에서
문제 : 는 조건식을 예상하고 대신 할당을 보았다.
동안은 ((FN = 준비는 [I ++])) {여기
은 JSLint 대신의 지정에 대해 불만을 체크 같습니다. JSLint가이 오류를 throw하는 이유는 공통적으로 실수로 ==
대신 =
을 입력하기 때문입니다. 이 while 루프는 코드를 더 깔끔하게 만들기 위해 지정됩니다.
문제점 550 행 9 번 : 공백 블록.
var key; for (key in obj) {}
return 키 === 정의되지 않음 || hasOwn.call (obj, key);
JSLint는 블록에 대해 약 공백을 표시합니다. 여기에 우리가 key
으로 아무것도하고 싶지 않기 때문에 여기에 목적이 있습니다. 우리는 모든 키들을 열거하고 마지막 것을 신경 써야합니다.라인 554 문자 15에서
문제 : 기능의 정상에 'VAR'선언을 이동합니다. (OBJ의 VAR 명) {
JSLint위한
함수의 상단 변수 선언을 갖는 주장한다. 이것은 약간 어리석은 당신이 원한다면 무시할 수 있습니다. 그것은 스타일의 문제입니다.
그리고 파서가 충돌합니다. 코드를 삭제 한 코드를 제거하고 더 많은 불만 사항을 찾을 수 있는지 확인하겠습니다. 라인에서
문제 792 42 문자 다음 '& &'표현식은 괄호에 래핑한다.
ua.indexOf ("호환") < 0 & & rmozilla.exec (UA) ||
나는이 하나에 동의합니다. (ua.indexO("compatile") < 0) &&
이 좋습니다. 라인에서
문제 872 문자 3 함수를 포함하는 괄호로 호출 이동.
})(); 같은 폐쇄를 들어
는 :
(function() {
})();
//}());
JSLint 스타일의 문제로 괄호 안에 함수 invokion을보고 좋아한다. 나도 이것에 동의한다. 그러나 정말로 전혀 중요하지 않다.
파서 우리는 우리가 외부를 변경하는 경우이 문제가 나던 있도록줄 972 문자 13의 문제 : 'e' 이 이미 정의되었습니다.
} 캐치 (전자) {
e
가 해당 catch 블록에서 로컬로 사용되는 것을 알고이 경우 변수
e
의 재사용에 대해 불평
catch 블록. 여기에 줄 1097 문자 (21)에 변수 이름을 다시 사용 e
문제의 가독성을 선호하는 '===' 예상하고 대신 '=='보았다.
elem = elem == window?
좋아, 너는 나를 잡았어. 가 할당 또는 대신에 기능 호출하고이 식을 보았다 예상 : 나는 jQuery를 줄 1621 문자 (24)에 window
문제에
===
를 사용하지 않는 이유에 stumbed하고 있습니다.parent.selectedIndex;
// Safari mis-reports the default selected property of an option
// Accessing the parent's selectedIndex property fixes it
if (name === "selected" && !jQuery.support.optSelected) {
var parent = elem.parentNode;
if (parent) {
parent.selectedIndex;
여기에 고정 할 수있는 그 크로스 브라우저 컴플라이언스 버그 중 하나입니다하지만 라인 977 문자 (17) 나쁜 code
문제가 발생합니다 '사건'후 '휴식'가 없습니다.
경우 "마지막"
JSLint 당신은 항상 당신의 경우 후 중단해야한다고 말했습니다. 사건이 끝난 후 완전히 빠져 나가는 것이 좋습니다. 대부분의 경우 break
을 잊었지만 여기는 의도적 인 것입니다. 라인 1099 문자 77에서
문제 : 은 할당 또는 함수 전화를 예상하고 대신에 식을 보았다.
Array.prototype.slice.call ( document.documentElement.childNodes 0 ) [0] ... .node
// Perform a simple check to determine if the browser is capable of
// converting a NodeList to an array using builtin methods.
// Also verifies that the returned array holds DOM nodes
// (which is not the case in the Blackberry browser)
try {
Array.prototype.slice.call(document.documentElement.childNodes, 0)[0].nodeType;
여기 소스는 그 자체를 말한다. 그것은 기묘한 진술이지만 접근하는 경우 오류가 발생하면 잡힐 수 있습니다. JSLint가 "당신은 정말로 이것을 의미합니까?"라고 말하는 것만으로도 여전히 유효합니다.
문제 : 2377 번 글자 15 번 : 'name'변수에 대해 이 잘못되었습니다. (옵션에서 이름) {
여기 JSLint가 글로벌 범위에서 window.name
과 충돌 할 수 name
의 사용에 대해 불평에 대한
. "아직 예약되지 않은 미래의 키워드이지만 여전히 피해야합니다". 문 닫았을 때 안전 했어.
문제 2486 번 글자 29 : 너무 많음 많은 오류가 있습니다. (60 % 스캔 됨).
JSLint의 내부 스택이 처리 할 수 없습니다. 나는 이제 그만 갈거야.
요점이 설명되어 있다고 생각합니다.
JSLint에는 "이 작업을 수행 하시겠습니까?"라는 메시지가 많이 있습니다. 그것은 실수처럼 보일지 모르지만 그렇지 않습니다.
jslint가 사용하는 규칙은 지침이며 깨지지 않는 규칙은 아닙니다. 당신이 그들 중 일부를 무시하고자하는 많은 이유가 있습니다.
상당수가 detailed considerations of jslint rules입니다. 많은 사람들이 그것에 동의하지 않습니다.
개인적으로, 나는 그것을 좋아하지만 각 JS 파일 맨 위에있는 주석을 사용하여 내가하는 일이 적절하다는 것을 알 때 다양한 경고를 켜고 끕니다. 그런 다음 CI 테스트의 일부로 모든 JS에 대해 jslint를 실행합니다. 이제는 사소한 실수를 저지르고 일반적으로 우리를 괴롭 히지 않습니다.
다양한 설정을 켜고 끄더라도 JSLint가 오류를 발생시키는 것은 있지만 실제로하고 싶은 일이 있습니다. JSLint를 충분히 제어 할 수 없습니다. – Raynos
테스트에 여분의 플래그를 추가하여 jslint를 완전히 건너 뛰었습니다. 정말 좋아하지 않는 것들을 원했던 구성 요소에서 jslint를 완전히 건너 뜁니다. 어쨌든 내 취향에 따라 jslint를 준수하는 작은 오버 헤드는 가치가 있습니다. phpcs가 서버 측 코드에 대해하는 것과 동일한 방식으로 일관된 스타일을 적용하기위한 것입니다. –
최신 업데이트 : [jshint] (http://jshint.com/)는 훨씬 더 유연한 체크를 제공합니다. –
이전에 요청되었습니다. http://stackoverflow.com/questions/505251/what-good-is-jslint-if-jquery-fails-the-validation –
JSLint는 유효성에 대한 것이 아닙니다. 그것은 코딩 규칙에 관한 것입니다. 그것이 내 관점이다. – HerrSerker