ʻAe, ua hana hou au: Ke hoʻopau nei i nā hewa maʻamau ma JavaScript

ʻAe, ua hana hou au: Ke hoʻopau nei i nā hewa maʻamau ma JavaScript

Hiki ke paʻakikī ke kākau ʻana i ke code JavaScript, a i kekahi manawa hoʻoweliweli maoli, e like me ka ʻike o nā mea hoʻomohala he nui. Kū mai nā hewa i ka wā o ke kaʻina hana, a ʻo kekahi o ia mau mea e hana hou ʻia ana. Kūkākūkā kēia ʻatikala, i manaʻo ʻia no nā mea hoʻomohala hoʻomaka, i kēia mau hewa a pehea e hoʻoponopono ai iā lākou. No ka maopopo, ua lawe ʻia nā inoa o nā hana, nā waiwai, a me nā mea mai mele kaulanaKōkua kēia mau mea a pau iā ʻoe e hoʻomanaʻo koke pehea e hoʻoponopono ai i nā hewa maʻamau.

Hoʻomaopopo mākou iā ʻoe: no ka poʻe heluhelu a pau o "Habr" - kahi ho'ēmi o 10 rubles i ka wā e kākau inoa ai i kekahi papa Skillbox e hoʻohana ana i ka code promotional "Habr".

Manaʻo ʻo Skillbox: Papa hana "Hoʻolālā Mobile PRO".

ʻAnoError: ʻaʻole i wehewehe ʻia ka waiwai

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)

Hoʻopuka ka laʻana code ma luna i ka hewa "Uncaught TypeError: ʻAʻole hiki ke heluhelu i ka waiwai 'lucky' o undefined." ʻO ka pilikia, ʻaʻohe waiwai "named" o ka mea "girl", ʻoiai he waiwai "name" kona. A no ka mea ʻaʻole i wehewehe ʻia ka waiwai "girl.named", ʻaʻole hiki ke komo ʻia, no ka mea, ʻaʻole ia i loaʻa ma ke ʻano loea. Eia nō naʻe, inā ʻoe e pani iā ​​"girl.named.lucky" me "girl.name," hana nā mea āpau a hoʻihoʻi ka polokalamu iā "Lucky."

Hiki ke loaʻa nā kikoʻī hou aku e pili ana i nā waiwai heluheluʻia maanei.

Pehea e hoʻoponopono ai i nā pilikia TypeErrors

Hana ʻia nā TypeErrors ke hoʻāʻo kahi mea papahana e hana i kahi hana ma ka ʻikepili i kūlike ʻole me kahi ʻano i wehewehe ʻia. ʻO nā laʻana e komo pū me ka hoʻohana ʻana i ka .bold(), ke nīnau ʻana no kahi waiwai i wehewehe ʻole ʻia, a i ʻole ke kāhea ʻana i kahi hana ʻaʻole ia he hana maoli.

No laila, inā ʻoe e hoʻāʻo e kāhea i ke kaikamahine (), e loaʻa iā ʻoe ka hewa Uncaught TypeError: ʻaʻole he hana kāuVariable.bold a ʻaʻole he hana ke kaikamahine, ʻoiai ʻo ka mea maoli ke kāhea ʻia nei kahi mea, ʻaʻole he hana.

No ka hoʻoponopono ʻana i nā hewa, pono ʻoe e nānā i nā loli. No laila, he aha ka "kaikamahine"? A he aha ka "girl.named"? Hiki iā ʻoe ke ʻike ma ke kālailai ʻana i ke code, ka hōʻike ʻana i nā loli me ka hoʻohana ʻana i ka console.log, ke kauoha debugger, a i ʻole ke kāhea ʻana i ka inoa loli ma ka console. Pono ʻoe e hōʻoia hiki iā ʻoe ke lawelawe i ke ʻano ʻikepili i loko o ka loli. Inā ʻaʻole, e hoʻololi iā ia—no ka laʻana, ma ka hoʻohui ʻana i kahi kūlana a i ʻole kahi poloka try..catch—a loaʻa ka mana ma luna o ka hoʻokō ʻana o ka hana.

Ka nui o ka waihona

Inā mākou e manaʻoʻiʻo i nā mea kākau mele o ke mele "Baby One More Time" (ʻo Britney Spears kēlā, duh), ʻo ka huaʻōlelo "hit" ma kēia ʻano e pili ana i ka makemake o ka mea mele e kāhea hou ʻia (eia kahi wehewehe ʻana o ke ʻano o ke mele - memo a ka unuhi). He mea hiki loa paha e alakaʻi kēia makemake i ka hoʻonui ʻia ʻana o nā kāhea ma ke ola maoli. Akā i ka papahana, he recursion kēia, hiki ke hana i kahi hewa i ka hanana o kahi call stack overflow.

Penei ke ʻano o nā hewa:

Hewa: ʻAʻole i piha ka hakahaka (Edge)
Kuhi Kūloko: nui loa ka recursion (Firefox)
RangeError: Ua ʻoi aku ka nui o ka nui o ka waihona kāhea (Chrome)

Hana ʻia kahi stack overflow ke hiki ʻole i ka mea hoʻomohala ke helu no ka hihia kumu i ka recursion, a i ʻole ke kuhikuhi ʻole ke code i ka hihia i manaʻo ʻia.

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

I kēia hihia, ʻaʻole hiki iā stillBelieve ke loiloi i ka wahaheʻe, no laila e kāhea ʻia ʻo oneMoreTime i kēlā me kēia manawa, akā ʻaʻole loa e hoʻopau ka hana i ka hoʻokō ʻana.

Inā hoʻomaka ʻoe e hilinaʻi i ʻelua mau hoaaloha, e hōʻemi kēia i ka mehameha, a ʻaʻole pono ʻoe e kali no ke kāhea ʻana.

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

ʻO kahi laʻana, ʻo ia ke ʻano o nā loops palena ʻole, kahi ʻaʻole hōʻike ka ʻōnaehana i kahi leka hewa, akā paʻa wale ka ʻaoʻao e holo ana i ke code JavaScript. Hana ʻia kēia i ka wā ʻaʻohe kūlana hoʻopau o ka loop while.

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

Hiki ke hoʻoponopono ʻia ka pilikia penei:

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

Ke hoʻoponopono nei i nā loops palena ʻole a me nā recursions

Inā loaʻa iā ʻoe kahi pilikia loop pau ʻole, e pani i ka pā ma Chrome a i ʻole Edge, a i ʻole ka puka makani polokalamu kele pūnaewele ma Firefox. Ma hope o kēlā, e kālailai pono i ke code. Inā ʻaʻole hiki iā ʻoe ke loaʻa ka pilikia, e hoʻohui i kahi kauoha debugger i ka loop a i ʻole ka hana a nānā i nā waiwai loli. Inā ʻaʻole ka hopena i kāu i manaʻo ai, e pani iā ​​ia—he maʻalahi kēia.

Ma ka laʻana ma luna, pono e hoʻohui ʻia ka debugger ma ke ʻano he laina mua o ka hana a i ʻole ka loop. A laila, wehe i kahi pā debug ma Chrome a kālailai i nā loli i loko o ka laulā. Me ka hoʻohana ʻana i ke pihi aʻe, hiki iā ʻoe ke hahai i kā lākou mau loli me kēlā me kēia iteration. He mea maʻalahi kēia e hana, a i ka hapa nui o nā hihia, ua maʻalahi ka ʻike ʻana i ka pilikia.

Hiki iā ʻoe ke heluhelu hou aʻe e pili ana i kēia mau mea āpau ma aneʻi (no ka chrome) a maanei (no Firefox).

Hewa syntax

ʻO kekahi o nā hewa maʻamau i ka JavaScript ʻo SyntaxError. Hiki i nā hoʻonui hoʻoponopono kikokikona ke kōkua i ka pale ʻana iā lākou. No ka laʻana, hōʻike ʻo Bracket Pair Colorizer i nā brackets i kāu code i nā kala like ʻole, ʻoiai ʻo Prettier a i ʻole kahi mea hana loiloi like e hiki ai iā ʻoe ke ʻimi koke i nā hewa. ʻO ke ala maikaʻi loa e hōʻemi ai i ka hiki ke loaʻa iā SyntaxErrors, ʻo ia ka hoʻemi ʻana i ka hoʻomoe ʻana.

E kaʻana like i nā manaʻo: he aha kāu e hana ai e pale aku i nā hewa a ʻike koke a hoʻopau iā lākou?

Manaʻo ʻo Skillbox:

Source: www.habr.com

E kūʻai i ka hoʻokipa hilinaʻi no nā pūnaewele me ka pale DDoS, nā kikowaena VPS VDS 🔥 E kūʻai i ka hoʻokipa pūnaewele hilinaʻi me ka pale DDoS, nā kikowaena VPS VDS | ProHoster