Dollar Sign Blues: Javascript a PHP

při použití $ v proměnných není nic špatného. Neudělal bych to schválně u každé proměnné, ale stále je to platná syntaxe. jQuery je jedním z příkladů, kdy se $ používá jako název proměnné. To je také důvod, proč „nástroje Chrome dev ne vždy vidí, že se jedná o chybu JavaScriptu“, protože na prvním místě není žádná chyba.

pokud se bojíte psaní kódu jako:

var demo = function demo() { var a = 123; ... $a = 456; // A new variable is created in global scope.}

pak musíte použít kontrolu stylu, jako jsLint, jsHint nebo Google Closure Linter. Který z nich? Je na vás, abyste se rozhodli. Abychom vám s tím pomohli, zde je několik poznámek:

styl

Google Closure Linter následuje průvodce stylem Google JavaScript, o kterém je známo, že je chytře proveden. Použití známého stylu pro JavaScript nebo kterýkoli ze šesti dalších jazyků je dobrý nápad: když sdílíte svůj kód nebo najmete nového vývojáře, je pravděpodobné, že tento styl již znají.

mnoho vývojářů je také obeznámeno se stylem Douglas Crockford. Tento styl je podrobně vysvětlen v JavaScriptu: dobré části, kniha stojí za to koupit každý, kdo pracuje s JavaScriptem.

pokud jde o jsHint, nemohu opravdu najít, jaké konvence se používají, a zdá se, že samotný web se vyhýbá mluvení o tomto tématu. Možná mi něco uniklo.

podpora IDEs

jsLint i jsHint jsou podporovány PhpStorm. To je také případ Google Closure Linter.

prostředí

Google Closure Linter je jedním z řady nástrojů. Pokud již používáte Google Closure Compiler nebo Google Closure Library, bylo by lepší zvolit Closure Linter nad jinými nástroji.

Striktnost

je známo, že jsLint je přísný. jsHint je tolerantnější, což není vždy dobrá věc. Například, jeden z důvodů, proč vidlice jsLint pro jsHint je vysvětlen v článku, který ukazuje špatný kód, který způsobí chybu v jsLint, ale ne v jsHint:

/*global jQuery */// Example taken from jQuery 1.4.2 sourcejQuery.extend({ /* ... */ isEmptyObject: function( obj ) { for ( var name in obj ) { return false; } return true; } /* ... */});

kód je špatný, protože to vypadá, že JavaScript má blok rozsah, zatímco to nemá. viz JavaScript: dobré části, s. 102, Dodatek A: Hrozné Části, Rozsah. Jinými slovy, při pohledu na kód bez znalosti jazyka očekáváme, že name nebude viditelný mimo smyčku, zatímco zůstane viditelný.

pokud jde o Linter uzavření Google, věřím, že je to někde uprostřed mezi jsLint a jsHint, ale nemám dostatek informací, které by to podpořily.

závěr

chtěl bych se vyhnout jsHint: je to příliš tolerantní, což znamená, že by nenašel potenciální chyby, které by ostatní lintery detekovaly. Průvodce stylem, který se používá, je obtížné najít.

mezi jsLint a Google Closure Linter není volba zřejmá. Oba jsou napsány odborníky, oba se řídí přísným, dobře popsaným stylovým průvodcem, který již následují tisíce vývojářů. Použijte oba na nějakou dobu, pak vyberte ten, který je pro vás praktičtější.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.