Jó minőségű JavaScript kódot írunk

Kerülje az implicit típusú konverziókat

Az implicit típusú konverzió okozta problémák elkerülése érdekében mindig használja a === és! == operátorokat, hogy teszteljék az összehasonlítandó kifejezések értékét és típusát:

Van egy másik programozási iskola is, amelyen belül szokás feltételezni, hogy a szolgáltató === túl van használva. ha elég operátor ==. Például, ha a typeof-ot használják. amely egy stringet ad vissza, nincs ok arra, hogy szigorú megfelelést követeljen. De a JSLint szigorú megfelelést igényel. Ráadásul a kód teljesebbnek tűnik, és az olvasás során csökkenteni fogja a gondolkodásmennyiséget ("Ez az operátor = = szándékosan vagy véletlenül használt?").

Ne használja az eval ()

Az eval () használata szintén hatással lehet a biztonságra, mivel kijátszhat (pl. Egy meglehetősen gyakori gonosz gyakorlat a JSON válaszával az AJAX kérésére. Ebben az esetben jobb, ha a beépített böngészési módszereket a JSON válaszának elemzéséhez a probléma biztonságos és helyes megoldására használjuk. Böngészők számára, amelyek nem támogatják a JSON.parse () szolgáltatást, a könyvtárat a JSON.org segítségével is használhatja.

Az új új függvény () konstruktor használata hasonló az eval () függvényhez. ezért óvatosan kell kezelni. Ez egy hatékony eszköz, de gyakran visszaélnek. Ha feltétlenül szüksége van az eval () használatára. fontolja meg új funkció () használatát. Van egy kis potenciális előny, mivel az új függvényben () definiált kódot a helyi függvénytérben futtatják, így a var-direktívával meghatározott változók a megadott kódban nem válnak automatikusan globálissá. A globális változók automatikus észlelésének elkerülése érdekében az eval () függvény egy függvénybe kerül.

Tekintsük a következő példát. Itt csak egy olyan globális változó marad, amely szennyezi a névteret:

Egy másik különbség az eval () és az új Function () konstruktor között az, hogy az eval () egy namespace láncot keresztezhet, és a függvény végrehajtódik a homokozóban. Nem számít, hogy hol végzed a Funkciót. csak globális névteret használ. Ezért kevésbé szennyezi a helyi névteret. A következő példában az eval () a külső névtérben lévő változókat hozzáférhet és módosíthatja, de a függvény nem használható (a Funkció és az új funkció azonos):

Szám konvertálása a parseInt ()

A parseInt () paranccsal számot kaphat a karakterláncból. A függvény veszi a második paramétert - a számrendszer alapját, amelyet gyakran elhagynak. De hiába. A probléma akkor jelentkezik, amikor egy 0-tól kezdődő karakterláncot kell elemezni: pl. Az űrlapmező mezőbe bevitt dátumrészét. A 0-val kezdődő karakterlánc oktális számként (8-as alap) kezelhető, ahogyan az az ECMAScript 3-ban van definiálva (de az ECMAScript 5-ben módosított). Az összeférhetetlenség és a váratlan eredmények elkerülése érdekében mindig a radix paramétert kell használni:

Ebben a példában, ha a paramétert radix (függvények hívását, mint parseInt (év)), akkor kap egy értéket 0, mert a „09” alatt azt értjük, mint egy szám (például ha megadta parseInt (év, 8)), és 09 - rossz szám a bázison 8.

Alternatív módszerek egy karakterlánc számhoz történő konvertálásához:

Ezeket a módszereket gyakran gyorsabban végzik, mint a parseInt (). mert a parseInt () a stringet elemzi, nem pedig átalakítja. De ha feltételezzük, hogy a bemenet a "08 hello" formában létezhet, akkor a parseInt () visszaadja a számot, és más módszerek sikertelenek NaN visszatéréssel.

A kódex követelményei

Fontos a kódkövetelmények összeállítása és követése - ez a lépés holisztikus, kiszámítható és sokkal könnyebbé és érthetőbbé teszi a kódot. A csapat új fejlesztője, a kód következő követelményei sokkal gyorsabban lépnek be a munkamódszerbe, észreveve a projekt többi résztvevőjének által írt kódot.

Súlyos csalások és disszociációk merülnek fel a kódkövetelmények különféle aspektusainak megvitatásakor (például a szóközökkel vagy lapokkal való behúzáskor). Ezért a kódex követelményeinek bevezetésekor komolyan fel kell készülnie a megbeszélésekre. De a kódex követelményei és szigorú betartása nagyon fontos a projekt létezéséhez és sikeres fejlesztéséhez.

És hova kell behúzódnom? A szabály egyszerű - bárhol vannak göndör fogasok. Vagyis a funkciók karaktersorában a hurkok (do, while, for, in-in), ha és a kapcsoló állításokat. és az objektum tulajdonságait. A következő kód példákat mutat a behúzás használatára:

fogszabályozó

A göndör zárójeleket mindig akkor kell használni, ha azok opciók. Technikailag, ha csak egy kifejezést használsz egy vagy egy nyilatkozatban. fogsorok nem szükségesek, de ezeket egyébként is fel kell használni. A kódot következetesebbé és egyszerűbbé teszik.

Képzeld el, hogy van egy ciklusa egy kifejezéssel. Elhagyhatja a zárójeleket, amely nem szintaktikai hiba:

De mi van, ha később hozzá kell adnunk egy másik vonalat a hurok testéhez?

A második riasztási funkció ki van kapcsolva a hurokból, és a behúzás rossz viccet jelenthet. A legjobb, ha a perspektívák perspektíváján mindig zárójelet használnak, még egy soros blokk esetén is:

Szintén a feltételek:

Jó minőségű JavaScript kódot írunk

Az információk azonnali megszerzésére két csatorna (látás és hallás) révén a tanítás hatékonysága sokkal nagyobb, mint a könyvek tanulása. És a házi feladatok és az online tesztek lehetővé teszik, hogy folyamatosan gondolkodj a tanult nyelvben, és azonnal ellenőrizd a tudását!

Jó minőségű JavaScript kódot írunk

Jó minőségű JavaScript kódot írunk

Ha sokáig szeretné megtanulni a HTML-t, akkor remek hírekkel szolgálok neked!

Jó minőségű JavaScript kódot írunk

Ha már megtanulta a HTML-t, és tovább akar lépni, a következő lépés a CSS-technológia megtanulása.

Jó minőségű JavaScript kódot írunk

Ha azt szeretnénk, hogy megértsék a fogalmak domain és tárhely, megtanulják, hogyan kell létrehozni egy adatbázist, feltölteni a fájlokat a honlapon keresztül FTP szerver, hozzon létre aldomain konfigurálja a postaládákat a helyszínen, és ellenőrzi a részvétel, a tanfolyam kifejezetten az Ön számára!

Kapcsolódó cikkek