ʻ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

He mea paʻakikī ke kākau ʻana i ka code JavaScript a i kekahi manawa he mea hoʻoweliweli, ʻoiai ua kamaʻāina nā mea hoʻomohala. Ma ke kaʻina hana, hiki mai nā hewa, a ua hana pinepine ʻia kekahi o lākou. ʻO kēia ʻatikala, e pili ana i nā mea hoʻomohala hou, e kamaʻilio e pili ana i kēia mau hewa a pehea e hoʻoponopono ai. No ka akaka, lawe ʻia nā inoa o nā hana, nā waiwai a me nā mea mele kaulana. Kōkua kēia mau mea iā ʻoe e hoʻomanaʻo koke i ka hoʻoponopono ʻana 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".

TypeError: ʻ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)

ʻO ke code laʻana ma luna e hoʻolei i ka hewa Uncaught TypeError: ʻAʻole hiki ke heluhelu i ka waiwai 'laki' o ka undefined. ʻO ka pilikia, ʻaʻohe waiwai i kapa ʻia ke kaikamahine mea, ʻoiai he waiwai kona inoa. A no ka mea ʻaʻole i wehewehe ʻia ka waiwai o ke kaikamahine.named, ʻaʻole hiki iā ʻoe ke komo iā ia, no ka mea, ʻaʻole i loaʻa. Akā inā hoʻololi ʻoe iā girl.named.lucky me girl.name, a laila e hana nā mea āpau a hoʻi ka papahana iā Laki.

Hiki iā ʻoe ke aʻo hou e pili ana i nā waiwai heluheluʻia maanei.

Pehea e hoʻoholo ai i TypeErrors

Hana ʻia nā TypeErrors i ka wā e hoʻāʻo ai ka mea papahana e hana i nā hana ma ka ʻikepili i kūlike ʻole i kahi ʻano kikoʻī. Eia kekahi laʻana me ka hoʻohana ʻana i ka .bold (), e noi ana i kahi waiwai i wehewehe ʻole ʻia, a i ʻole ke kāhea ʻana i kahi hana ʻaʻole ia he hana.

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, no ka mea, he mea i kapa ʻia, ʻaʻole he hana.

No ka hoʻopauʻana i nā hewa, ponoʻoe e aʻo i nā loli. No laila, he aha ke kaikamahine? He aha ka inoa o ke kaikamahine? Hiki iā ʻoe ke ʻike ma ka nānā ʻana i ke code, e hōʻike ana i nā ʻano like ʻole me ka hoʻohana ʻana i ka console.log, ke kauoha debugger, a i ʻole ke kāhea ʻana i ka inoa hoʻololi i ka console. Pono ʻoe e hōʻoia i ka hiki ke hana i ka ʻano ʻikepili i loko o ka mea hoʻololi. Inā ʻaʻole kūpono, e hoʻololi iā ia, no ka laʻana, hoʻohui i kahi kūlana a hoʻāʻo paha.

Hoʻopaʻa ʻana

Inā manaʻoʻiʻo ʻoe i ka poʻe kākau o nā mele o ke mele ʻo Baby One More Time (ʻo Britney Spears kēia, ʻae), a laila ʻo ka huaʻōlelo paʻi ma kēia pōʻaiapili ʻo ia ka makemake o ka mea mele e kāhea hou ʻia (eia ka wehewehe ʻana i ke ʻano o ka pōʻaiapili. mele - memo unuhi). E alakaʻi paha kēia makemake i ka hoʻonui ʻana i ka helu o nā kelepona i ke ola maoli. Akā i ka hoʻonohonoho ʻana, he recursion kēia i hiki ke hoʻohua i kahi hewa inā e hoʻonui ka waihona kelepona.

ʻO nā hewa e like me kēia:

Hapa: Ma waho o ka hoʻopaʻa hakahaka (Edge)
Hapa loko: nui loa ka recursion (Firefox)
RangeError: Ua ʻoi aku ka nui o ka waihona kelepona (Chrome)

Hiki ke hoʻonui ʻia ka waihona inā ʻaʻole noʻonoʻo ka mea hoʻomohala i ka hihia kumu i ka recursion, a inā ʻaʻole hoʻoponopono 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 ke hoʻopunipuni ka stillBelieve, no laila e kāhea ʻia ʻo oneMoreTime i kēlā me kēia manawa, akā ʻaʻole e pau ka hana.

Inā hoʻomaka ʻoe e hilinaʻi i nā hoaaloha ʻelua, e hōʻemi kēia i ka loneliness, a ʻaʻole pono ʻoe e kali i kahi kelepona.

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

ʻO kahi laʻana nā hihia me nā puka lou hope ʻole, ke hoʻopuka ʻole ka ʻōnaehana i kahi memo hewa, akā ʻo ka ʻaoʻao kahi i hoʻokō ʻia ai ka code JavaScript e hoʻokuʻu wale ʻia. Hana ʻia kēia inā ʻ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 iā ʻoe ke hoʻoponopono i ka pilikia penei:

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

Hoʻopau i nā puka lou pau ʻole a me nā recursions

Inā loaʻa iā ʻoe kahi pilikia loop pau ʻole, pono ʻoe e pani i ka pā ma Chrome a i ʻole Edge, a pani i ka puka aniani ma Firefox. Ma hope o kēia, pono ʻoe e nānā pono i ke code. Inā ʻaʻole hiki iā ʻoe ke ʻike i ka pilikia, pono e hoʻohui i kahi kauoha debugger i kāu loop a i ʻole hana a nānā i nā waiwai o nā mea hoʻololi. Inā ʻaʻole kūpono ka hopena i ka mea i manaʻo ʻia, a laila hoʻololi mākou iā ia, hiki ke hana maʻalahi.

I ka laʻana ma luna, pono e hoʻohui ʻia ka debugger ma ke ʻano he laina mua o ka hana a i ʻole loop. A laila pono ʻoe e wehe i ka ʻaoʻao debug ma Chrome, e nānā ana i nā ʻano like ʻole. Ke hoʻohana nei i ka pihi aʻe hiki iā ʻoe ke hahai i kā lākou hoʻololi me kēlā me kēia hoʻololi. He mea maʻalahi kēia a pau, a ma ka hapanui o nā hihia, loaʻa ka pilikia.

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

Kuʻia kuhi hewa

ʻO kekahi o nā hewa maʻamau ma JavaScript ʻo SyntaxError. E kōkua nā mea hoʻoponopono kikokikona iā ʻoe e pale aku iā lākou. No ka laʻana, hōʻailona ʻo Bracket Pair Colorizer i nā brackets i ke code me nā waihoʻoluʻu like ʻole, a ʻo Prettier a i ʻole kahi mea hana loiloi like e hiki ai ke ʻimi koke i nā hewa. ʻO ke koho maikaʻi loa e hōʻemi i ka likelika o kahi SyntaxError he liʻiliʻi ka nesting.

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

Manaʻo ʻo Skillbox:

Source: www.habr.com

Pākuʻi i ka manaʻo hoʻopuka