JSLint netikėtai praneša: naudokite funkciją „naudoti griežtą“

Įjungiu operatorių:

 "use strict"; 

daugelio mano „JavaScript“ failų pradžioje.

JSLint niekada apie tai nepranešė. Bet dabar taip, sakydamas:

Naudokite funkciją „naudoti griežtą“.

Ar kas nors žino, kas yra „funkcijos forma“?

838
16 дек. nustatė Zhami gruodžio 16 d 2010-12-16 18:36 '10, 18:36, 2010-12-16 18:36
@ 8 atsakymai

Įgalinti 'use strict'; kaip pirmasis operatorius vyniojimo funkcijoje, todėl jis veikia tik šią funkciją. Tai užkerta kelią problemoms, kai susiejami ne griežti scenarijai.

Žr. Naujausią „Douglas Crockford“ dienoraščio įrašą.

Šio pranešimo pavyzdys:

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

Atnaujinimas: Jei nenorite užbaigti tiesioginės funkcijos (pvz., Tai yra mazgo modulis), galite išjungti įspėjimą.

JSLint (už Zami ):

  

JSHint“ :

  

arba ( Laith Shadeed )

  

Jei norite išjungti bet kokį savavališką įspėjimą iš JSHint, patikrinkite žemėlapį JSHint šaltinio kode (išsamesnę informaciją žr . Dokumentuose ).

2 naujinimas: „ JSHint“ palaiko node:boolean . Žiūrėkite .jshintrc adresu github .

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

Jei įvesite modulius „NodeJS“, jie jau yra užpildyti. Pasakykite JSLint, kad turite mazgų įtraukdami jį į failo pradžią:

border=0
  
213
07 июля '12 в 15:38 2012-07-07 15:38 atsakymas pateikiamas Zhami liepos 12 d., 12 val. 15:38 2012-07-07 15:38

Vietoj to, aš siūlau naudoti jshint .

Tai leidžia jums sustabdyti šį įspėjimą su .

Jei rašote biblioteką, siūlyčiau naudoti visuotinį griežtą kodą, jei jūsų kodas yra įdėtas į modulius, kaip tai daroma su „nodejs“.

Priešingu atveju, jūs priversite visus, kurie naudojasi savo biblioteka, griežtu režimu.

68
12 окт. atsakymas, kurį pateikė Thorsten Lorenz Oct 12 2012-10-12 17:58 '12, 17:58, 2012-10-12 17:58

Styginių formoje nėra nieko.

Vietoj to, kad būtų išvengta „pasaulinio“ griežtos formos, kad nerimautumėte, kad sujungiami „leksiniai“ javascript, tai tikriausiai yra geriausia, kad išspręstumėte nekaltą „JavaScript“ kodą, kad jis būtų griežtas.

15
25 мая '12 в 8:48 2012-05-25 08:48 atsakymas pateikiamas glikozilo pagalba gegužės 25 d. 12 val. 8:48 2012-05-25 08:48

Pradėjau kurti „Node.js“ / „browsify“ programą, atlikdama „ Cross Platform JavaScript“ dienoraštį. Ir aš pabėgo į šią problemą, nes mano naujas Gruntfile nepavyko.

Laimei, atsakymas buvo rastas „Leanpub“ knygoje „Grunt“ :

Jei dabar bandysime, nuskaitome Grunt failą ... ir gausime klaidų:

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

Abi klaidos kyla dėl to, kad „Gruntfile“ yra „Node“ programa, ir pagal nutylėjimą „JSHint“ nepripažįsta arba neleidžia naudoti module ir naudojimo eilutės versijos. Galime nustatyti JSHint taisyklę, kuri priims mūsų mazgų programas. Leiskite redaguoti „jshint“ užduočių konfigūraciją ir pridėti parinkties raktą:

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

Įtraukus node: true kad „jshint“ options įjungtų „jshint“ į „Node“ režimą, pašalintos man abi klaidos.

14
31 мая '14 в 10:46 2014-05-31 10:46 atsakymas pateikiamas qris gegužės 31 d., 14 d., 10:46, 2014-05-31 10:46

Įtraukite .jslintrc failą (arba .jshintrc už jshint) į savo projekto šaknį su tokiu turiniu:

 { "node": true } 
12
29 июля '15 в 11:15 2015-07-29 11:15 atsakymą pateikė Sahil Ahuja liepos 29 d., 15 val. 11:15 2015-07-29 11:15

Manau, kad visi praleido „netikėtą“ šio klausimo dalį. Labiausiai tikėtina, kad jūsų .jshintrc yra sintaksės klaida, todėl jame nėra eilutės „naršyklė“. Paleiskite jį su „json validator“, kad sužinotumėte, kur yra klaida.

0
13 сент. atsakymas duotas Dirigible 13 Sept. 2015-09-13 19:58 '15, 19:58, 2015-09-13 19:58

Štai kaip paprasta: jei norite griežtai laikytis visų savo kodų, pridėkite "use strict"; jūsų „JavaScript“ pradžioje.

Bet jei norite tik griežti su tam tikru kodu, naudokite funkcijos formą. Bet kokiu atveju norėčiau rekomenduoti jį naudoti savo javascript pradžioje, nes tai padės jums tapti geresniu koduotoju.

-5
01 июня '12 в 14:01 2012-06-01 14:01 Atsakymą pateikė Jason Stackhouse birželio 1 d., 12 val. 2:01 val. 2012-06-01 14:01

Kiti klausimai apie „ arba užduoti klausimą