JSLint gözlənilmədən hesabat verir: "ciddi istifadə" funksiyasından istifadə edin

Mən operatoru açıram:

 "use strict"; 

javascript fayllarının ən başında.

JSLint bu barədə heç xəbərdar etməyib. Ancaq indi belə deyirəm:

"Sıx istifadə" funksiyası formasını istifadə edin.

Hər kəs bir "funksiya forması" nə olduğunu bilirmi?

838
16 дек. Zhami tərəfindən dekabrın 16-da təyin olundu 2010-12-16 18:36 '10 at 18:36 2010-12-16 18:36
@ 8 cavab

'use strict'; Sert 'use strict'; bənövşə funksiyasındakı ilk operator kimi, bu funksiyanı yalnız bu funksiyanı təsir edir. Bu, ciddi olmayan skriptləri birləşdirərkən problemlərin qarşısını alır.

Douglas Crockfordun son blog yazısına baxın. Sərt rejim şəhərə yaxınlaşır .

Bu mesajdan nümunə:

 (function () { 'use strict'; // this function is strict... }()); (function () { // but this function is sloppy... }()); 

Yeniləmə: Əgər dərhal funksiyanı yerinə yetirmək istəməsəniz (məsələn, bu node modulu), xəbərdarlığı aradan buraxa bilərsiniz.

JSLint üçün ( Zami üçün):

  

JSHint üçün :

  

və ya ( Laith Shadeed üçün )

  

JSHint'ten hər hansı bir keyfi xəbərdarlığı aradan qaldırmaq üçün xəritəni JSHint mənbə kodunda yoxlayın (ətraflı məlumat üçün sənədlərə baxın).

Yeniləmə 2: JSHint node:boolean dəstəkləyir node:boolean . .jshintrc baxın.

  
923
16 дек. bdukes cavab 16 dec. 2010-12-16 18:44 '10 at 18:44 2010-12-16 18:44

NodeJS üçün modullar yazarsanız, onlar artıq encapsulated olunur. JSLint-ə dosyanın başında daxil etməklə bir node var:

border=0
  
213
07 июля '12 в 15:38 2012-07-07 15:38 Cavab Zhami 07 iyul '12 saat 15:38 'də verilir 2012-07-07 15:38

Bunun əvəzinə, jshint istifadə təklif edirəm.

Bu xəbərdarlıqları ilə bastırmanıza imkan verir.

Bir kitabxana yazırsanız, kodu nodejs ilə olduğu kimi, kodunuzun modullarda əhatə olunduğu halda qlobal ciddi istifadə etməyi təklif edirəm.

Əks təqdirdə, kitabxananı sərt rejimdə istifadə edən hər kəsə məcbur olacaqsınız.

68
12 окт. Thorsten Lorenz tərəfindən verilmiş cavab 12 oktyabr 2012-10-12 17:58 '12 at 17:58 2012-10-12 17:58

Simli forma içində heç bir şey yoxdur.

Birbaşa lax javascripti narahat etmək üçün "qlobal" ciddi formadan qaçmaq əvəzinə, lənətülsüz javascriptləri ciddi şəkildə düzəltmək yaxşı olardı.

15
25 мая '12 в 8:48 2012-05-25 08:48 cavab 25 may 2012- ci il tarixində saat 08:48 radələrində glikoslav tərəfindən verilmişdir

Cross Platform JavaScript blogunu izləərək Node.js / gözdən keçirmək tətbiqini yaratmağa başladım. Mən bu məsələyə qaçdım, çünki yeni Gruntfile jshint uğursuz oldu.

Xoşbəxtlikdən, mən Grunt üzrə Leanpub kitabında cavab tapdım :

İndi cəhd edərsek, Grunt faylını tarayırıq ... və bəzi səhvlər alırıq:

 $ 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. 

Hər iki səhv Gruntfile bir Node proqramıdır və JSHint default olaraq, moduleuse strict simli versiyasını tanımır və ya icazə vermir. Node proqramlarımızı qəbul edən bir JSHint qayda qura bilərik. Bizim jshint vəzifəmizin konfiqurasiyasını düzəliş edək və bir seçim düyməsini əlavə edək:

 jshint: { options: { node: true }, } 

node: true əlavə et node: true jshint düyməsini node: true rejimində qoymaq üçün jshint options node: true mənim üçün hər iki səhv çıxarılıb.

14
31 мая '14 в 10:46 2014-05-31 10:46 cavab qris 31 may, 14 saat 10:46 da verilir 2014-05-31 10:46

Aşağıdakı məzmunlarla layihənin kökünə .jslintrc faylını (və ya jshintrc üçün jshintrc) əlavə edin:

 { "node": true } 
12
29 июля '15 в 11:15 2015-07-29 11:15 Cavab Sahil Ahuja tərəfindən 29 İyul, '15 'də saat 11:15' də verilir, 2015-07-29 11:15

Hesab edirəm ki, hər kəs bu suala "gözlənilməz" hissəsini qaçırdı. Çox güman ki, sizin .jshintrc sözdizimində bir səhv var, ona görə də "brauzer" simli daxil deyildir. Səhvlərin olduğu yerləri tapmaq üçün json validator ilə işləyin.

0
13 сент. cavab verildi Dirigible 13 sentyabr. 2015-09-13 19:58 '15 'də saat 19:58' da 2015-09-13 19:58

Burada nə qədər sadədir: bütün kodunuzla ciddi olmaq istəyirsinizsə, "use strict"; javascriptinizin başında.

Ancaq bəzi kodlarla ciddi olmaq istəyirsinizsə, funksiyanın formasını istifadə edin. Hər halda, javascriptinizin başlanğıcında istifadə etməyinizi məsləhət görürəm, çünki daha yaxşı bir kodlayıcı olmanıza kömək edəcək.

-5
01 июня '12 в 14:01 2012-06-01 14:01 Cavab Jason Stackhouse tərəfindən 1 İyun '12 'də saat 14:01 ' də verilir. 2012-06-01 14:01

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