Oi, na ou toe faia: Debugging masani sese i le JavaScript

Oi, na ou toe faia: Debugging masani sese i le JavaScript

O le tusiaina o le code JavaScript e mafai ona luitauina ma o nisi taimi e matua taufaamataʻu, e pei ona masani ai le tele o atinaʻe. I le faagasologa o galuega, e le maalofia le tulai mai o mea sese, ma o nisi o na mea e fai soo. O lenei tusiga, e faʻatatau i tagata atinaʻe fou, talanoa e uiga i nei mea sese ma auala e foia ai. Mo le manino, o igoa o galuega, meatotino ma mea faitino e aumai mai pese lauiloa. O nei mea uma e fesoasoani ia te oe e manatua vave ai pe faʻafefea ona faʻasaʻo mea sese masani.

Matou te faʻamanatu atu ia te oe: mo tagata faitau uma o le "Habr" - o se faʻaitiitiga o 10 rubles pe a lesitala i soʻo se vasega Skillbox e faʻaaoga ai le code promotional "Habr".

Ua fautuaina e Skillbox: Kosi fa'ata'ita'i "Mobile Developer PRO".

TypeError: e le o fa'amalamalamaina meatotino

let girl = {
    name: "Lucky",
    location: "Hollywood",
    profession: "star",
    thingsMissingInHerLife: true,
    lovely: true,
    cry: function() {
        return "cry, cry, cries in her lonely heart"
    }
}
console.log(girl.named.lucky)

O le faʻataʻitaʻiga code o loʻo i luga e lafo ai le mea sese Uncaught TypeError: E le mafai ona faitau meatotino 'laki' o le le faʻamalamalamaina. O le fa’afitauli o le mea lea e leai se igoa o le teine, e ui lava e iai sona igoa. Ma talu ai o le teine.named meatotino e le o faʻamalamalamaina, e le mafai ona e mauaina, aua e le o iai. Ae afai e te suia le girl.named.lucky i le girl.name, ona aoga lea o mea uma ma toe foi mai le polokalame Lucky.

E mafai ona e aoao atili e uiga i meatotino faitau ii.

Auala e foia ai TypeErrors

TypeErrors e tupu pe a taumafai se tagata fai polokalame e fai taga i luga o faʻamaumauga e le fetaui ma se ituaiga patino. O faʻataʻitaʻiga e aofia ai le faʻaaogaina o le .bold(), ole atu mo se mea e le faʻamalamalamaina, poʻo le valaʻau i se galuega e le o se galuega.

O lea la, afai e te taumafai e valaʻau teine ​​(), o le ae maua le mea sese Uncaught TypeError: yourVariable.bold e le o se galuega ma le teine ​​e le o se galuega, aua o le mea moni o se mea e valaʻau, ae le o se galuega.

Ina ia faʻaumatia mea sese, e tatau ona e suʻesuʻeina fesuiaiga. O le a la le teine? O le a le igoa o le teine? E mafai ona e suʻeina e ala i le suʻeina o le code, faʻaalia fesuiaiga e faʻaaoga ai le console.log, le faʻatonuga o le debugger, poʻo le valaʻau i le igoa fesuiaʻi i le faʻamafanafanaga. E tatau ona e faʻamautinoa e mafai ona faʻaogaina le ituaiga faʻamatalaga o loʻo i totonu o le fesuiaiga. Afai e le fetaui, sui, mo se faʻataʻitaʻiga, faʻaopoopo se tulaga pe taumafai..puʻe poloka - ma maua le pule i le faʻatinoina o le taotoga.

Fa'aputu Masuasua

Afai e te talitonu i tusitala o upu o le pese Baby One More Time (o Britney Spears lenei, ioe), o lona uiga o le upu hit i lenei tulaga o lona uiga o le manaʻo o le tagata pese e toe valaʻau (o se faʻamatalaga lea o le uiga tonu o le tala. pese - fa'aliliu upu). Atonu o lenei manaoga o le a taitai atu ai i le faateleina o le numera o telefoni i le olaga moni. Ae i le polokalame, o se toe faʻafoʻi lea e mafai ona mafua ai se mea sese pe a faʻafefe le faʻaputuga telefoni.

O mea sese e pei o lenei:

Sese: E leai se avanoa fa'aputu (Edge)
Fa'aletonu i totonu: tele naua le toe fa'afo'i (Firefox)
RangeError: Ua sili atu le tele o le faaputuga telefoni (Chrome)

E tupu se fa'aputuga fa'aputu pe a le mafaufau le tagata fa'atupuina le mataupu faavae i le toe fa'afo'i, po'o le fa'ailoga e le fa'atatau i le mataupu na fa'amoemoeina.

function oneMoreTime(stillBelieve=true, loneliness=0) {
    if (!stillBelieve && loneliness < 0) return
    loneliness++
    return oneMoreTime(stillBelieve, loneliness)
}

I lenei tulaga, stillBelieve e le mafai lava ona sese, o lea o le a valaauina oneMoreTime i taimi uma, ae o le galuega e le mafai lava ona maeʻa.

Afai e te amata faʻalagolago i ni uo se toʻalua, o le a faʻaitiitia ai le tuulafoaiina, ma e te le tau faʻatali mo se telefoni.

function oneMoreTime(stillBelieve=true, loneliness=0) {
    if (!stillBelieve && loneliness < 0) return
    loneliness--
    stillBelieve = false
    return oneMoreTime(stillBelieve, loneliness)
}

O se faʻataʻitaʻiga o mataupu ma faʻamaufaʻailoga e le iʻu, pe a le faʻatupuina e le faiga se feʻau sese, ae o le itulau o loʻo faʻatinoina ai le code JavaScript e naʻo le malolo. E tupu lenei mea pe a leai se tulaga fa'amutaina o le while loop.

let worldEnded = false
 
while (worldEnded !== true) {
  console.log("Keep on dancin' till the world ends")
}

E mafai ona e foia le faafitauli e pei ona taua i lalo:

let worldEnded = false
 
while (worldEnded !== true) {
  console.log("Keep on dancin' till the world ends")
  worldEnded = true
}

Debugging matasele e le gata ma recursions

Afai ei ai sau faʻafitauli e le iʻu, e tatau ona e tapuni le faʻamau i Chrome poʻo Edge, ma tapuni le faamalama o le suʻesuʻega i Firefox. A maeʻa lenei mea, e tatau ona e suʻesuʻeina ma le faʻaeteete le code. Afai e le mafai ona e mauaina le faʻafitauli, e aoga le faʻaopoopoina o se faʻatonuga o le debugger i lau matasele poʻo lau galuega ma siaki le tau o fesuiaiga. Afai o le taunuuga e le fetaui ma le mea na faamoemoeina, ona tatou suia lea, e mafai ona faigofie.

I le faʻataʻitaʻiga o loʻo i luga, e tatau ona faʻaopoopo le debugger o le laina muamua o le galuega poʻo le matasele. Ona e manaʻomia lea e tatala le debug tab i le Chrome, suʻesuʻeina suiga i le lautele. I le fa'aogaina o le isi fa'amau e mafai ona e siakia latou suiga i fa'amatalaga ta'itasi. O nei mea uma e faigofie ona fai, ma i le tele o tulaga e maua ai le faʻafitauli.

E mafai ona e faitau atili e uiga i nei mea uma iinei (mo Chrome) ma iinei (mo Firefox).

Syntax sese

O se tasi o mea sili ona taatele i le JavaScript o le SyntaxError. O fa'aopoopoga fa'atonu tusitusiga o le a fesoasoani ia te oe e aloese mai ai. Mo se faʻataʻitaʻiga, Bracket Pair Colorizer faʻailoga puipui i le code ma lanu eseese, ma Prettier poʻo se mea faigaluega suʻesuʻe tutusa e mafai ai ona vave maua mea sese. Ole filifiliga sili e fa'aitiitia ai le fa'ailoga ole SyntaxError ole fa'anofo la'ititi.

Faasoa i faʻamatalaga: o le a lau mea e fai e puipuia ai mea sese pe vave iloa ma faʻaumatia?

Ua fautuaina e Skillbox:

puna: www.habr.com

Faaopoopo i ai se faamatalaga