JSLint doğrulama və ya JSHint JavaScript istifadə etməliyəmmi?

Hal-hazırda JSLint üçün JavaScript-ni yoxlayıram və ən yaxşı JavaScript-ni yazmağa kömək edir, xüsusilə jQuery kitabxanası ilə işləyərkən.

İndi JSHint'e qaçdım, bir JSLint plug.
Buna görə də, javascript tərəfindən idarə olunan və qarşı işləmək üçün ən yaxşı və ya ən uyğun qiymətləndirmə vasitəsi olan web proqramları haqqında maraqlanıram:

  • JSLint və ya JSHint?

İndi doğrulama mexanizminə qərar vermək və irəli getmək istəyirəm, bunu müştəri tərəfində yoxlamaq üçün istifadə edin.

Və jshint və jslint arasındakı fərq? Bir nümunə javascript ilə izah edin.

Referanslar:

416
24 июля '11 в 0:04 2011-07-24 00:04 amatör 24 İyul tarixində təyin olundu '11 da 0:04 2011-07-24 00:04
@ 8 cavab

[EDIT]
Bu cavab redaktə edilib. Aşağıdakı əsərin tərkib hissəsi üçün buraxıram (əks halda şərh mənalı deyil).

Bu sual ilk soruşulduğunda, JSLint JavaScript mətn vasitəsilə yineleme üçün əsas vasitədir. JSHint yeni JSLint fiş idi, lakin hələ orijinal ilə müqayisədə deyil.

O vaxtdan bəri JSLint olduqca statik qaldı, JSHint çox dəyişdi - JSLint'in daha çox mübahisəli qaydalarından bir çoxunu saldı, bir sıra yeni qaydalar əlavə etdi və bir qayda olaraq daha çevik oldu. Bundan əlavə, bir ESLint aləti artıq mövcuddur, daha da çevik və daha çox qayda variantları var.

İlk cavabımda, özünüzü JSLint qaydalarına riayət etməyə məcbur etməyin; bir xəbərdarlıq atdığını anladığınız müddətdə, xəbərdarlığı həll etmək üçün kodu dəyişdirməyin olub olmadığını özünüz üçün qiymətləndirə bilərsiniz.

2011-ci ildən bu yana son dərəcə ciddi bir JSLint qaydaları ilə, bu həssas bir tip idi - JSLint testini keçə biləcək çox az JavaScript kodları gördüm. Lakin, bugünkü JSHint və ESLint vasitələrində mövcud olan daha praktik qaydalara əsasən, daha realist bir təklif, sıfır xəbərdarlıq ilə keçən kodu əldə etməkdir.

Bəzən linter qəsdən etdiyiniz işlərdən şikayət edəcəyi zaman ola bilər - məsələn, hər zaman === istifadə etməyinizi bilirsiniz, ancaq == istifadə etmək üçün yaxşı bir səbəb var. Ancaq sonra da, ESLint ilə, söz mövzusu xətt ətrafında eslint-disable müəyyən etmək imkanı var, belə ki lint imtahanını sıfır xəbərdarlıqla keçə bilərik və kodun qalan hissəsi qaydaya tabe olur. (yalnız bunu tez-tez etmə!)


[ORİQİNAL SORUMLULUĞU]

Hər halda, JSLint istifadə edin. Amma nəticələrini dayandırmayın və xəbərdar edən hər şeyi düzəltməyin. Bu kodunuzu yaxşılaşdırmağa kömək edəcək və bu, potensial səhvləri tapmaqda kömək edəcək, lakin JSLint'in şikayət etdiyi hər şeyin əsl problemi deyil, belə ki, prosesi sıfır xəbərdarlıqla tamamlamağınızı düşünməyin.

Hər halda, heç bir əhəmiyyətli uzunluğu və ya mürəkkəbliyi olan hər hansı bir Javascript kodu JSLint-də nə qədər yaxşı yazılmış olursa olsun xəbərdarlıq yaradır. Mənə inanmırsan, jQuery kimi bəzi məşhur kütüphaneleri yayınla.

Bəzi JSLint xəbərdarlıqları başqalarından daha qiymətlidir: hansıları təqib etmək və hansıları daha az vacibdir. Hər bir xəbərdarlıq nəzərə alınmalıdır, ancaq hər hansı bir xəbərdarlıqdan təmizləmək üçün kodunuzu düzəltmək məcburiyyətində deyilsiniz; koda baxmaq və bununla razı olduğunuza qərar vermək olduqca normaldır; Jslint kimi olmayan şeylər həqiqətən doğru şeylərdir.

133
24 июля '11 в 1:00 2011-07-24 01:00 Cavab Spudley 24 iyul '11 'də saat 01: 00-da verilir

tl; dr paket:

Özünüz və ya bir qrup üçün çox yüksək səviyyədə axtarırsınızsa, JSLint. Ancaq bu mütləq bir standart deyil, yalnız bir standart deyil, bəziləri dogmatik olaraq Doug Crocford adlı bir javascript ilahisindən bizə çatır. Bir az daha çevik və ya JSLint-fikirlərinizi satın almayan və ya JS və digər C-ailəsi dilləri arasında mütəmadi olaraq gəzən komandanıza bir neçə köhnə üstünlük vermək istəyirsinizsə, JSHint'i cəhd edin.

uzun versiyası:

Çatalın əsl səbəbi JSHint mövcuddur:

http://badassjs.com/post/3364925033/jshint-an-community-driven-fork-of-jslint http://anton.kovalyov.net/2011/02/20/why-i-forked-jslint-to -jşint /

Buna görə də düşünürəm ki, fikir Crockford deyil, "ictimaiyyətə yönəldilmişdir". Praktikada, JSHint, JSLint'in sadiq olduğu bir neçə üslub və fon sintaktik "fikirlər" üzərində adətən bir az yumşaqdır (ya da ən azı fərdiləşdirilə və ya agnostik).

Bir nümunə olaraq, A və B'nin həm aşağıda yaxşı olduğunu düşünürsünüz, ya da bir və ya bir neçə aspektlə kodu yazmaq istəyirsinizsə B'de mövcud deyilsinizsə, JSHint sizin üçündir. B düşünsəniz, B doğru seçimdir ... JSLint. Əminəm ki, digər fərqlər var, amma bunun bir neçə səbəbi var.

border=0

A) JSHint qutusundan çıxarın - JSLint çökdü

 (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); } })(); 

B) həm JSHint, həm də JSLint'i atlayır

 (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); } }()); 

Şəxsən mənə baxmağa çox xoş olan JSLint kodunu tapıram və razılaşmadığım yalnız mürəkkəb xüsusiyyətlər funksiyasında birdən çox var bəyannaməsindən nifrət və for var i = 0 bildirişləri və bir sıra boşluqlar üçün funksiya bəyannamələri.

JSLint tətbiq etdiyi bir neçə boşluq şeyin mənfi olduğuna inanıram, ancaq ailənin digər dilləri (C, Java, Python və s.) Üçün kifayət qədər standart yer konvensiyaları ilə sinxronlaşdırılmır. Javascript. Gün ərzində fərqli dillərdə yazdığımda və kodumuzda Lint tərzi boşluqları sevməyən komanda üzvləri ilə işləyərkən, JSHint yaxşı bir tarazlıq tapıram. O hüquqi bir səhv və ya həqiqətən pis bir forma tutan materialı tutur, amma JSLint kimi mənə bükülməz (bəzən belə mənə əlimdən gələ bilməyəcəyəm), mənə ehtiyac duymayan üslub fikirləri və ya sintaktik nitpik.

Bir çox yaxşı kitabxanalar Lint'able deyildir ki, mənim üçün bəzi həqiqətlərin olduğunu göstərir ki, bəzi JSLint yalnız "yaxşı kod" (həqiqətən yaxşı kod) bir versiyasını itələyir. Yenə də eyni kitabxanalar (və ya digər yaxşı) ehtimal ki, ya da toxunulmazdır.

364
26 мая '12 в 7:36 2012-05-26 07:36 Cavab Ben Roberts tərəfindən 26 May 'da 7:36' də veriləcək 2012-05-26 07:36

Ön javascriptdə başqa bir yetkin və fəal inkişaf etmiş "oyunçu" var - ESLint :

ESLint, ECMAScript / JavaScript kodunda olan nümunələri müəyyən etmək və bildirmək üçün bir vasitədir. Bir çox hallarda bu JSLint və JSHint kimi bir neçə istisna ilə bənzəyir:

  • ESLint, JavaScript-ni təhlil etmək üçün Esprima istifadə edir.
  • ESLint kodun nümunələrini qiymətləndirmək üçün AST istifadə edir.
  • ESLint tam bağlıdır, hər bir qayda bir plugindir və onu iş vaxtında əlavə edə bilərsiniz.

Həqiqətən vacibdir ki, istifadəçi pluginləri / qaydaları ilə uzanır . Müxtəlif məqsədlər üçün yazılmış bir neçə plugins var. Digərləri arasında:

Əlbəttə, ESLint qurmaq üçün qurmaq vasitənizi istifadə edə bilərsiniz:

46
23 дек. cavab alecxe 23 dec tərəfindən verilir . 2014-12-23 09:20 '14 da 9:20 2014-12-23 09:20

Bir neçə həftə əvvəl eyni sualım vardı və həm JSLint, həm də JSHint qiymətləndirdilər.

Bu sualın cavablarından fərqli olaraq, mənim qənaətim yox idi:

Hər halda, JSLint istifadə edin.

Və ya:

Özünüz və ya bir qrup üçün çox yüksək səviyyədə axtarırsınızsa, JSLint.

JSint-da JSint-də olduğu kimi eyni qaydaları necə konfiqurasiya edə bilərsiniz. Buna görə də deyə bilərəm ki, əldə edə biləcəyiniz qaydalarda heç bir fərq yoxdur.

Beləliklə, birinin üstünə seçilməsinin səbəbləri texnikidən daha siyasidır.

Nəhayət, JSHint ilə aşağıdakı səbəblərə görə getməyə qərar verdik:

  • Daha özelleştirilebilir bir jslint kimi görünür.
  • Bir nəfər şousu (şəxsin nə qədər sərin olursa olsun) ilə müqayisədə daha çox icma yönümlü görünür.
  • JSHint bizim OOTB kod üslubuna JSLint-dən daha yaxşı uyğun gəlir.
15
22 дек. Cavab verilən leksikore 22 dekabr. 2014-12-22 17:45 '14 saat 17:45 'də 2014-12-22 17:45

Üçüncü təklifi, Google Closure Compiler (və Closure Linter ) etdim. Onu burada onlayn sınayabilirsiniz .

Yıxma kompilyatoru JavaScript yüklənməsini və qaçışını sürətləndirmək üçün bir vasitədir. Bu, həqiqətən, bir JavaScript derleyicidir. Kaynak dilinden maşın koduna derleme yerine, JavaScript'i geliştirmek üçün JavaScript ile derlenir. Bu javascriptinizi analiz edir, analiz edir, ölü kodları rədd edir və yenidən yazır və sol olanları minimuma endirir. Ayrıca sözdizimi, dəyişən və tipli referansları yoxlayır və ümumi JavaScript səhvləri barədə xəbərdar edir.

12
24 июля '11 в 0:07 2011-07-24 00:07 Cavab Jeff Foster tərəfindən 24 iyul '11 'də 0:07 2011-07-24 00:07' də verilir

Əl lint parametrlərini yerinə yetirmək yerinə, məsələn, js dosyanızın üstündəki bütün lint parametrlərini əlavə edə bilərik.

Bu faylda bütün qlobal dəyişənləri bildirin, məsələn:

  

Bütün lint ayarlarını aşağıdakı kimi bildirin:

  

Ümid edirəm bu sizə kömək edir :)

8
17 сент. Cavab 17-də Vikash Pandey tərəfindən verilmişdir . 2014-09-17 16:02 '14 'da 16:02 2014-09-17 16:02

Önsöz: Bəli, bu qədər sped up. Amma bunu başa çatdırmaq qərarına gəldim. Bu cavab sizə və digər oxuculara faydalı olsun.

2019

23 янв. cavab 23 Yanvar telləri ilə verilir . 2016-01-23 21:23 '16 at 21:23 2016-01-23 21:23

Başqa bir fəal inkişaf etmiş alternativ - AOC-stil JavaScript kodu var :

AOC sizin stiliniz üçün proqramlaşdırma üçün bir kod tərzidir. JQuery, Airbnb, Google və s. Kimi populyar stil təlimatlarından hazırlanmış parametrlər daxil olmaqla, 150 qiymətləndirmə qaydalarını istifadə edərək layihə üçün ATP-ni konfiqurasiya edə bilərsiniz.

Bu, bir neçə .jscsrc seçə bilərsiniz ki, sadəcə olaraq .jscsrc konfiqurasiya .jscsrc ayarı müəyyən edərək və istənilən qaydaları ləğv etmək,

 { "preset": "jquery", "requireCurlyBraces": null } 

Populyar redaktorları üçün yaradılmış plugins və uzantılar da var.

Həmçinin baxın:

1
25 авг. cavab alecxe 25 aug tərəfindən verilir . 2015-08-25 18:58 '15 at 18:58 2015-08-25 18:58

yazıları ilə bağlı digər suallar və ya bir sual