JSLint 또는 JSHint JavaScript 검증을 사용해야 합니까?
저는 현재 JSLint에 대해 JavaScript를 검증하고 있습니다.또한 Jquery 라이브러리로 작업할 때 JavaScript를 더 잘 쓰는 데 도움이 됩니다.
JSLint의 포크인 JSHint를 만나게 되었습니다.
웹.JavaScript는 과 같습니다.이것에 대항하는 검증 툴은, 다음과 같은 툴에 최적 또는 가장 적합한 검증 툴은 다음과 같습니다.
- JSLint 또는 JSHint?
검증 메커니즘에 대해 지금 결정하고 앞으로 나아가 클라이언트 측 검증에 활용하고 싶습니다.
그리고 jshint와 jslint의 차이점은?javascript의 단일 예시로 설명해 주세요.
링크:
TL;DR
자신이나 팀의 매우 높은 기준을 찾고 있는 경우는 JSLint를 사용합니다.단, 이 기준은 반드시 표준이 아니라 Doug Crockford가 독단적으로 제공하는 표준도 있습니다.
JSLint의 의견을 믿지 않거나 JavaScript와 다른 C 패밀리 언어를 정기적으로 오가고 있는 팀 내에서 좀 더 유연해지고 싶은 경우나 오래된 전문가가 있으면 JSHint를 사용해 보십시오.
풀 버전
JSHint의 존재 이유를 설명하는 두 가지 기사는 다음과 같습니다.
JSLint의 배후에 있는 아이디어는 Crockford가 아니라 커뮤니티가 주도하고 있다는 것입니다.JSHint는 JSLint가 고집스러운 몇 가지 문체적이고 사소한 구문론적 의견에 대해 일반적으로 더 관대하거나 최소한 구성 가능하거나 독립적입니다.
예를 들어 아래 1.과 2. 둘 다 괜찮다고 생각되거나 2.에서 사용할 수 없는 1.의 측면을 하나 이상 가진 코드를 작성하려는 경우 JSHint가 적합합니다.2.만이 올바른 옵션이라고 생각되는 경우 JSLint를 사용합니다.다른 차이점도 있겠지만 몇 가지 중요한 점이 있습니다.
개봉 후 JSHint 통과 - JSLint 실패
(function() { "use strict"; var x=0, y=2; function add(val1, val2){ return val1 + val2; } var z; for (var i=0; i<2; i++){ z = add(y, x+i); } })();
JSHint와 JSLint 모두 합격
(function () { "use strict"; var x = 0, y = 2, i, z; function add(val1, val2) { return val1 + val2; } for (i = 0; i < 2; i += 1) { z = add(y, x + i); } }());
나는 JSLint 코드가 시각적으로 더 매력적이라고 생각한다.내가 동의하지 않는 유일한 특징은 함수의 여러 선언과 -loop 선언 및 함수 선언에 대한 일부 공백 적용에 대한 혐오입니다.
JSLint가 강제하는 공백 중 일부는 반드시 나쁜 것은 아니지만 패밀리 내 다른 언어(C, Java, Python 등)에 대한 꽤 표준적인 공백 규칙과 동기화되지 않은 것일 뿐이며 Javascript에서도 종종 규칙이 따라왔다.하루 종일 다양한 언어로 글을 쓰고 코드에 린트 스타일의 공백이 없는 팀원들과 함께 작업하기 때문에 JSHint가 좋은 밸런스라고 생각합니다.합법적인 버그와 매우 불량한 코드를 잡아내지만, JSLint처럼(때로는 비활성화할 수 없는 방식으로) 내가 좋아하지 않는 스타일적인 의견이나 구문적인 잡동사니들을 위해 짖지 않는다.
많은 좋은 라이브러리는 Lint'able이 아닙니다.이것은 JSLint의 일부가 단지 하나의 「좋은 코드」버전(실제로 좋은 코드)을 푸시하는 것에 대한 생각에도 어느 정도 진실이 있음을 보여 줍니다.그러나 같은 라이브러리(또는 다른 좋은 라이브러리)도 아마 힌트가 되지 않을 것이다.그래서 터치도 할 수 있다.
[편집]
이 답변은 수정되었습니다.콘텍스트를 위해 아래에 원래의 답변을 남깁니다(그렇지 않으면 코멘트는 의미가 없습니다).
처음에 이 질문을 받았을 때 JSLint는 JavaScript의 주요 보풀 도구였습니다.JSHint는 JSLint의 새로운 포크였지만, 아직 원래의 것과 크게 다르지 않았다.
그 이후 JSLint는 거의 정적인 상태를 유지한 반면 JSHint는 많은 것을 바꿨다.JSLint의 적대적인 룰을 버리고 새로운 룰을 많이 추가해 일반적으로 유연해졌다.또한 이제 ESLint 도구를 사용할 수 있게 되었습니다. ESLint는 더욱 유연하고 더 많은 규칙 옵션을 제공합니다.
당초의 답변에서는, JSLint의 룰을 강요해서는 안 된다고 했습니다만, 왜 경고를 발하고 있는지를 이해하면, 경고를 해결하기 위해서 코드를 변경할 것인지 아닌지를 스스로 판단할 수 있습니다.
2011년부터 JSLint의 초강경 룰셋을 도입하여 JSLint 테스트를 통과할 수 있는 JavaScript 코드셋은 거의 본 적이 없습니다.그러나 오늘날의 JSHint 및 ESLint 도구에서 보다 실용적인 규칙을 사용할 수 있으므로 경고 없이 코드를 통과시키는 것이 훨씬 더 현실적인 제안입니다.
일부러 수 . 예를 린터는 ''를 사용해야 있습니다. 예를 들어, 당신은 항상 사용해야 한다는 것을 알고 있습니다.===
, 한.==
에서는 "ESLint"를 수 있습니다eslint-disable
일은 하지(이것들!)
[오리지널 답변이 이어집니다]
꼭 JSLint를 사용해 주세요.하지만 결과에 연연하거나 경고하는 모든 것을 수정하는 데 연연하지 마세요.코드 개선에 도움이 되고 잠재적인 버그를 찾는 데 도움이 되지만 JSLint가 불평하는 모든 것이 실제로 문제가 되는 것은 아니기 때문에 경고 없이 프로세스를 완료할 필요는 없습니다.
Javascript 코드의 길이나 복잡성이 큰 경우 아무리 잘 작성되어 있어도 JSLint에서 경고가 발생합니다.내 말을 못 믿겠다면 JQuery와 같은 인기 있는 라이브러리를 실행해 보세요.
JSLint 경고 중에는 주의해야 할 경고와 중요하지 않은 경고도 있습니다.모든 경고를 고려해야 하지만, 주어진 경고를 지우기 위해 코드를 수정할 의무는 없습니다. 코드를 보고 만족할 수 있다고 판단하는 것은 완벽하게 괜찮습니다. JSlint가 좋아하지 않는 일이 실제로 옳은 일이 될 수 있습니다.
javascript linting front에 성숙하고 적극적으로 개발된 다른 "플레이어"가 있습니다.
ESLint는 ECMAScript/JavaScript 코드에 있는 패턴을 식별하고 보고하기 위한 도구입니다.많은 점에서 JSLint 및 JSHint와 비슷하지만 몇 가지 예외가 있습니다.
- ESLint는 JavaScript 해석에 Esprima를 사용합니다.
- ESLint는 AST를 사용하여 코드의 패턴을 평가합니다.
- ESLint는 완전히 플러그인 가능하며 모든 규칙은 플러그인이며 런타임에 추가할 수 있습니다.
여기서 정말 중요한 것은 커스텀 플러그인/규칙을 통해 확장할 수 있다는 것입니다.다른 용도의 플러그인이 이미 여러 개 작성되어 있습니다.그 중에서도 다음과 같은 것이 있습니다.
- eslint-plugin-angular (John Papa's Angular Style Guide의 일부 가이드라인 적용)
- 에슬린트의 매개에 의한
- 에슬린트의 매개에 의한
하여 론론론 and and and and and and and and and를 실행할 수 .ESLint
:
나는 몇 주 전에 같은 질문을 했고 JSLint와 JSHint를 평가하고 있었다.
이 질문의 답변과는 달리, 제 결론은 다음과 같습니다.
꼭 JSLint를 사용해 주세요.
또는 다음 중 하나를 선택합니다.
자신이나 팀의 높은 기준을 찾고 있다면 JSLint를 참조하십시오.
JSInt에서도 JSInt와 거의 같은 규칙을 설정할 수 있습니다.그래서 저는 여러분이 달성할 수 있는 규칙에는 큰 차이가 없다고 주장합니다.
그래서 하나를 택하는 이유는 기술적이라기보다 정치적인 것이다.
JSHint를 선택하게 된 이유는 다음과 같습니다.
- JSLint보다 설정하기 쉬운 것 같습니다.
- 확실히 원맨쇼보다는 커뮤니티가 주도하는 것 같다(The Man이 얼마나 멋진지 상관없다).
- JSINT가 JSLint보다 코드 스타일 OOTB와 더 잘 어울렸습니다.
세 번째 제안인 Google Closure Compiler(및 Closure Linter)를 제안합니다.여기에서 온라인으로 시험해 볼 수 있습니다.
Closure 컴파일러는 JavaScript를 다운로드하여 보다 빠르게 실행할 수 있는 도구입니다.이것은 JavaScript용 진정한 컴파일러입니다.소스 언어에서 머신 코드로 컴파일하는 대신 JavaScript에서 더 나은 JavaScript로 컴파일합니다.JavaScript를 해석하고 분석하며 데드 코드를 제거하고 남은 코드를 다시 작성하여 최소화합니다.또한 구문, 변수 참조 및 유형을 확인하고 일반적인 JavaScript 함정에 대해 경고합니다.
서문:음, 그것은 빠르게 확대되었다.하지만 이겨내기로 결심했어요이 답변이 여러분과 다른 독자들에게 도움이 되길 바랍니다.
코드 힌트
JSLint와 JSHint는 사용하기 좋은 도구이지만, 오랜 세월 동안 저는 제 친구 @ugly_syntax의 말을 이해하게 되었습니다.
디자인 공간 축소
이는 '선승'과 같은 일반적인 원칙이며 선택을 제한하고 생산성과 창의성을 높일 수 있다.
따라서 현재 마음에 드는 제로 구성 JS 코드 스타일:
갱신:
흐름이 많이 좋아졌어요.이를 통해 JS에 유형을 추가할 수 있습니다. 그러면 많은 버그를 방지할 수 있습니다.단, 예를 들어 타입이 없는 JS와 인터페이스 할 때 방해가 되지 않을 수도 있습니다.한번 해봐!
퀵 스타트 / TL; DR
standard
에
npm install --save standard
ㅇㅇㅇㅇ에서package.json
스크립트를 추가합니다 , 다음 、 음음 、 , , ,:::: 。
"scripts": {
"test": "node_modules/.bin/standard && echo put further tests here"
},
개발 및 실행 중 보다 깔끔한 출력을 위해npm test
.
주의: 유형 확인 대 휴리스틱스
제 친구가 디자인 공간을 언급할 때 엘름에 대해 언급했는데, 그 언어를 사용해 보시기 바랍니다.
왜일까요? 사실 JS는 LISP에서 영감을 받았습니다. LISP는 특수한 언어 클래스입니다. 이 언어들은 타이핑되지 않았습니다.Elm 또는 Purescript와 같은 언어는 입력된 함수 프로그래밍 언어입니다.
restrict your freedom 이라고 입력하면 컴파일러가 프로그램 크기(LOC)에 관계없이 언어 또는 프로그램 규칙을 위반했을 때 사용자를 확인하고 안내할 수 있습니다.
최근 동료에게 반응형 인터페이스를 두 번 구현했습니다. 한 번은 Elm에, 한 번은 React에, 한 번은 React에, 한 번은 제가 무슨 말을 하고 있는지 살펴보라고 했습니다.
Compare (typed ) ( (유형 없음, 테스트 없음)
(ps. 리액트 코드는 관용적이지 않으므로 개선할 수 있음)
마지막으로 한 마디 하자면
실제로는 JS는 타이프 되어 있지 않습니다.내가 뭔데 너한테 타이프 프로그래밍을 제안해?
JS에서는 다른 영역에 있습니다.타입에서 해방되어 적절한 타입을 지정하기 어렵거나 불가능한 것을 쉽게 표현할 수 있습니다(이것은 확실히 장점이 될 수 있습니다.
그러나 유형이 없으면 프로그램을 견제할 필요가 거의 없기 때문에 테스트와 코드 스타일을 도입할 수밖에 없습니다.
LISP(ClojureScript 등)에서 영감을 얻어 코드 테스트에 투자할 것을 권장합니다.아이디어를 얻으려면 서브팩의 방법을 읽어보십시오.
평화.
수동의 보풀 설정을 실시하는 대신에, JS 파일 자체의 상부에 모든 보풀 설정을 포함할 수 있습니다.
해당 파일의 모든 글로벌 var를 다음과 같이 선언합니다.
/*global require,dojo,dojoConfig,alert */
다음과 같은 모든 보풀 설정을 선언합니다.
/*jslint browser:true,sloppy:true,nomen:true,unparam:true,plusplus:true,indent:4 */
이것이 도움이 되기를 바랍니다:)
JSCS - JavaScript Code Style이라는 또 다른 대안으로 활발하게 개발된 것도 있습니다.
JSCS는 스타일 가이드를 프로그래밍 방식으로 적용하기 위한 코드 스타일 링터입니다.jQuery, Airbnb, Google 등과 같은 인기 있는 스타일 가이드의 사전 설정을 포함하여 150개 이상의 검증 규칙을 사용하여 프로젝트에 대한 JSCS를 상세하게 구성할 수 있습니다.
이 메뉴얼에는, 복수의 프리셋이 포함되어 있습니다.preset
에서.jscsrc
컨피규레이션파일을 커스터마이즈하여 규칙을 덮어쓰거나 활성화 또는 비활성화합니다.
{
"preset": "jquery",
"requireCurlyBraces": null
}
인기 편집자를 위해 만들어진 플러그인과 확장 기능도 있습니다.
다음 항목도 참조해 주세요.
언급URL : https://stackoverflow.com/questions/6803305/should-i-use-jslint-or-jshint-javascript-validation
'programing' 카테고리의 다른 글
웹 MVC 응용 프로그램에 액세스 제어 목록을 구현하려면 어떻게 해야 합니까? (0) | 2022.11.05 |
---|---|
값에 "select"가 있으면 Joomla/PHPMyAdmin 버그가 발생한다. (0) | 2022.11.05 |
+new Date'에서 더하기 기호는 무엇을 합니까? (0) | 2022.11.05 |
위도/론 두 표 사이의 거리 계산 (0) | 2022.11.05 |
Python unittest - assertRaises의 반대? (0) | 2022.11.05 |