0 szavazat
(120 pont) által 

1 válasz

0 szavazat
által 

Sok sikert :)

A Javascript-et nagyon sokféle módon lehet használni, sok variánsa, és sok dirty hack van benne. Ezért nagyon könnyű rosszul olvasható, sőt sokszor hibás kódot írni benne.

Az egyik legfontosabb aranyszabály

Használd az újabb javascript szabvány eszközeit (http://es6-features.org), sokszor tömör és szép megoldást adnak olyan problémákra, amikre korábban csúny hackek léteztek.

  • Példák: arrow function, object destructuring, spread és rest operátorok, új beépített metódusok, class, extends.

  • Biztosítsd a kompatibilitást polyfill (egy hiányzó függvényt pótló library) vagy transpiler (a kód átfordítása az egyenértékű működést biztosító, de a régi böngészőkkel is kompatbilis kódra --> pl Babel) használatával, ha szükséges. ( https://caniuse.com/ )

  • Ez jelenleg az egyik best practice.

További tippek

Egy érzékletes példa

Itt van az indexOf method, amit pl egy tömb változón tudsz hívni. -1 -et ad vissza, ha nem található meg az elem a tömbben, egyébként az elem 0-val kezdődő indexét. Tegyük fel, hogy el szeretnéd dönteni, hogy egy adott elemet tartalmaz-e a tömb. A triviális megoldás:

if (myArray.indexOf(value) !== -1) {/* do smoething useful */}
Amikor már sokadszorra írod ezt le, egyrészről hosszú, másrészről zavaró a -1. Ezért sokan használják az alábbi hacket, ami egyenértékű a fentivel:

if (!!~myArray.indexOf(value)) {/* do smoething useful */}

Sok sikert akár egy tapasztaltabb programozónak is, aki megfejti, hogy mit is csinál pontosan a !!~. <3 (a ~ kettes komplemensét adja a számnak, azaz a -1-ből nulla lesz, 0-ból -1, az 1-ből -2 stb, a !! pedig boolean-ra "kényszerít". A Javascript nyelvben a negatív számok True értéket kapnak.)

Sokkal olvashatóbb megoldás Javascript újabb szabványában az ES6-ban megjelenő includes() method, ami szintén egyenértékű a fenitekkel:

if (myArray.includes(value)) {/* do smoething useful */}

...