
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 Kō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 .
ʻ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 .
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 () a maanei ().
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:
- ʻElua makahiki papa hana .
- Papa hana pūnaewele .
- Papa makahiki hoʻomaʻamaʻa .
Source: www.habr.com
