A JavaScript hibák 5 gyakori oka (és hogyan lehet őket elkerülni)

A JavaScript (JS) egy mindenütt elterjedt, rugalmas és széles körben népszerű programozási nyelv – bár hajlamos a hibákra és hibákra, amelyek miatt a legtöbb fejlesztő összeráncolja a homlokát és megőrül.

A JS-t széles körben használják a felhasználói interaktivitás biztosítására a legtöbb webalkalmazás kliens oldalán. JavaScript nélkül talán élettelenek és nem ingerelnek a dolgok az interneten. Mindazonáltal a nyelv hullámzása időnként arra készteti a fejlesztőket, hogy szeretet-gyűlölet kapcsolatot ápoljanak vele.

A JavaScript hibák miatt az alkalmazások váratlan eredményeket produkálnak, és rontják a felhasználói élményt. A University of British Columbia (UBC) tanulmánya a JavaScript-hibák és hibák kiváltó okait és hatásait kívánta feltárni. A tanulmány eredményei feltártak néhány gyakori mintát, amelyek rontják a JS programok teljesítményét.

Íme egy kördiagram, amely megmutatja, mit találtak a kutatók:

Ebben a blogbejegyzésben bemutatjuk a tanulmányban kiemelt JavaScript-hibák néhány gyakori okát (valamint azokat, amelyekkel naponta találkozunk), és bemutatjuk, hogyan teheti alkalmazásait kevésbé hajlamossá a hibákra.

DOM-mal kapcsolatos

A Document Object Model (DOM) létfontosságú szerepet játszik a webhelyek interaktivitásában. A DOM felület lehetővé teszi a weboldal tartalmának, stílusának és szerkezetének módosítását. Az egyszerű HTML weboldalak interaktívvá tétele – vagy a DOM manipulálása – éppen az oka annak, hogy a JavaScript programozási nyelv megjelent.

Tehát még a háttérben futó JavaScript-technológiák, például a Node.js bevezetése után is, a DOM-mal való munka továbbra is nagy részét képezi a nyelv működésének. Ezért a DOM jelentős lehetőség a hibák és hibák bevezetésére a JavaScript alkalmazásokban.

  Hogyan találhat elégetett kalóriákat, ha sétál az iPhone-ján

Nem meglepő, hogy a JavaScript hibajelentés-tanulmány kimutatta, hogy a legtöbb hibát a DOM-mal kapcsolatos problémák okozzák, 68%-ban.

Például egyes JavaScript-programozók gyakran elkövetik azt a hibát, hogy egy DOM-elemre hivatkoznak a betöltődés előtt, ami kódhibákhoz vezet.

<!DOCTYPE html>
<html>
<body>
        <script>        
	document.getElementById("container").innerHTML = "Common JS Bugs and Errors";
    </script>
    <div id="container"></div>
    </body>
</html>

Ha a fenti kód a Chrome böngészőben fut, akkor hibaüzenetet fog kiadni, ami a fejlesztői konzolon látható:

A hiba azért jelenik meg, mert a JavaScript kód általában a dokumentumon megjelenő sorrend szerint fut le. Mint ilyen, a böngésző nem ismeri a hivatkozott

elemet, amikor a kód fut.

Egy ilyen probléma megoldásához különféle módszereket alkalmazhat. A legegyszerűbb módszer az, ha a

elemet a szkriptcímke eleje elé helyezzük. Használhat JavaScript-könyvtárat is, például a jQuery-t, hogy megbizonyosodjon arról, hogy a DOM betöltődik-e, mielőtt hozzáférhetne.

<!DOCTYPE html>
<html>
<body>
     <div id="container"></div>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <script>        
		document.getElementById("container").innerHTML = "Common JS Bugs and Errors";
    </script>    
</body>
</html>

Szintaxis alapú

Szintaktikai hibák lépnek fel, ha a JavaScript értelmező nem hajt végre szintaktikailag helytelen kódot. Ha létrehoz egy alkalmazást, és az értelmező olyan tokeneket észlel, amelyek nem egyeznek a JavaScript programozási nyelv szabványos szintaxisával, akkor hibát fog kiadni. A JavaScript hibajelentés tanulmánya szerint ezek a hibák felelősek a nyelvben előforduló összes hiba 12%-áért.

A nyelvtani hibák, például a hiányzó zárójelek vagy a páratlan zárójelek a JavaScript szintaktikai hibáinak fő okai.

Ha például feltételes utasításokat kell használnia több feltétel kezelésére, előfordulhat, hogy elmulasztja a szükséges zárójelek megadását, ami szintaktikai hibákhoz vezethet.

Nézzük a következő példát.

if((x > y) && (y < 77) {
        //more code here
   }

Igen, a feltételes utasítás utolsó zárójele hiányzik. Észrevetted a hibát a fenti kóddal?

  5 legjobb eszköz a fényképek átviteléhez iPhone-ról számítógépre

Javítsuk ki.

if ((x > y) && (y < 77)) {
        //more code here
    }

Az ilyen szintaktikai hibák elkerülése érdekében szánjon időt a JavaScript programozási nyelv nyelvtani szabályainak megtanulására. Kiterjedt kódolási gyakorlattal könnyen észreveheti a nyelvtani hibákat, és elkerülheti, hogy a kifejlesztett alkalmazással szállítsa azokat.

Nem definiált/null kulcsszavak helytelen használata

Egyes JavaScript-fejlesztők nem tudják, hogyan kell helyesen használni az undefined és a null kulcsszavakat. Valójában a tanulmány arról számolt be, hogy a kulcsszavak nem megfelelő használata az összes JavaScript-hiba 5%-áért felelős.

A null kulcsszó egy hozzárendelési érték, amelyet általában egy nem létező érték jelölésére rendelnek hozzá. Meglepő módon a null is JavaScript objektum.

Íme egy példa:

var codeJS = null;

console.log(codeJS);
      //output is null

console.log(typeof codeJS);
     //output is object

Másrészt az undefined azt jelzi, hogy a már deklarált változóhoz vagy bármely más tulajdonsághoz nincs hozzárendelt érték. Ez arra is utalhat, hogy semmit sem jelentettek be. Az undefined önmagának egy típusa.

Íme egy példa:

var codeJS;

console.log(codeJS);
      //output is undefined

console.log(typeof codeJS);
     //output is undefined

Érdekes módon, ha az egyenlőség operátor és az identitás operátor hozzászokott a null és a definiálatlan kulcsszavak összehasonlításához, az utóbbi nem tekinti őket egyenlőnek.

console.log(null==undefined);
//output is true

console.log(null===undefined);
//output is false

Ezért a null és undefined kulcsszavak helyes használatának ismerete segíthet elkerülni a hibákat a JavaScript programjaiban.

Nem definiált módszerek

A JavaScript hibáinak másik gyakori oka az, hogy egy metódus hívása anélkül, hogy megadná annak előzetes definícióját. Az UBC kutatói rájöttek, hogy ez a hiba az összes JavaScript-hiba 4%-ához vezet.

  Hogyan lehet kijavítani, hogy a Netflix nem töltődik be a Sony Smart TV-n

Íme egy példa:

var coder = {
      name: "Peter",
      age: 27,
      speak() {
      console.log(this.name);
  }
};
coder.speakNow();

A hiba itt látható a Chrome fejlesztői konzolon:

A fenti hiba azért fordul elő, mert a hívott speakNow() függvény nincs definiálva a JavaScript kódban.

A return utasítás helytelen használata

A JavaScriptben a return utasítás egy függvény futásának leállítására szolgál, hogy az értéke kiadható legyen. Ha hibásan használja, a return utasítás ronthatja az alkalmazások optimális teljesítményét. A tanulmány szerint a return utasítás helytelen használata a JavaScript-alkalmazások összes hibájának 2%-át okozza.

Például egyes JavaScript-programozók általában elkövetik azt a hibát, hogy helytelenül törik meg a return utasítást.

Bár egy JavaScript utasítást két sorban megtörhet, és továbbra is megkaphatja a szükséges kimenetet, a return utasítás feltörése katasztrófát idéz elő az alkalmazásban.

Íme egy példa:

function number(n) {
    var add = 5;
    return;
    n + add;
     }
console.log(number(10));

A fenti kód futtatásakor egy meghatározatlan hiba jelenik meg a Chrome fejlesztői konzolon:

Ezért tartózkodnia kell a return utasítások feltörésétől a JavaScript-kódban.

Következtetés

Az ügyféloldali JavaScript programozási nyelv kiváló, kiterjedt képességekkel rendelkezik a modern webalkalmazások funkcióinak működtetéséhez. Ha azonban nem érti azokat a furcsaságokat, amelyek miatt a nyelv működik, az alkalmazásai teljesítménye megbénulhat.

Továbbá, JavaScript fejlesztők sokoldalú eszközöket igényelnek alkalmazásaik teljesítményének hibaelhárításához, valamint a hibák és hibák gyors észleléséhez.

Ezért a tesztelőeszközök átfogó készletével magabiztosan azonosíthatja azokat az anomáliákat, amelyek rontják webhelye teljesítményét. Ez az, amire szüksége van webhelye teljesítményének javításához és az optimális felhasználói élmény eléréséhez.

Jó hibamentes JavaScript programozást!

A cikket Alfrick Opidi írta