
Dzimwe nguva kunyora JavaScript kodhi kwakaoma, uye dzimwe nguva kunotyisa, izvo zvinozivikanwa nevazhinji vanogadzira. Mukuita basa, zvikanganiso zvinomuka zvisingadzivisiki, uye zvimwe zvacho zvinodzokororwa kakawanda. Ichi chinyorwa, chakagadzirirwa vagadziri vekutanga, chinotaura pamusoro pezvikanganiso izvi uye nzira yekuzvigadzirisa. Kujekesa, mazita emabasa, zvivakwa uye zvinhu zvinotorwa kubva . Zvese izvi zvinokubatsira iwe nekukurumidza kuyeuka maitiro ekugadzirisa zvikanganiso zvakajairika.
Tinoyeuchidza: kune vese vaverengi veHabr - a 10 ruble mutengo paunenge uchinyoresa mune chero Skillbox kosi uchishandisa iyo Habr promo kodhi.
Skillbox inokurudzira: Nzira inoshanda .
TypeError: pfuma haina kutsanangurwa
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)
Iyo muenzaniso kodhi iri pamusoro inodzosa kukanganisa Uncaught TypeError: Haikwanise kuverenga chivakwa 'rombo rakanaka' rekusatsanangurwa. Dambudziko nderekuti chinhu chemusikana hachina pfuma ine zita, nyangwe iine midziyo yezita. Uye sezvo musikana.zita pfuma haina kutsanangurwa, haigoni kuwanikwa, nokuti pamutemo haipo. Asi kana ukatsiva girl.named.lucky with girl.name, zvese zvichashanda uye chirongwa chichadzoka Lucky.
Mamwe mashoko pamusoro pezvivakwa anogona kuwanikwa .
Nzira dzekugadzirisa TypeErrors
TypeError kukanganisa kunoitika kana mugadziri anoedza kuita chiito pane data risiri rerudzi rwakatsanangurwa. Mienzaniso inosanganisira kushandisa .bold(), kubvunza nezvechinhu chisina kutsanangurwa, kana kudaidza chiitiko chisiri chaicho chiitiko.
Saka, kana ukaedza kufonera musikana(), uchawana kukanganisa Uncaught TypeError: yourVariable.bold haisi basa uye musikana haasi basa, sezvo chaizvoizvo chinhu chinonzi, kwete basa.
Kuti ugadzirise dambudziko, unofanirwa kuongorora madhiri. Saka, musikana chii? Uye musikana anonzi ani? Iwe unogona kuzviwana kuburikidza nekuongorora kodhi, kuratidza zvinoshanduka uchishandisa console.log , debugger command, kana kudana zita rinoshanduka mukoni. Iwe unofanirwa kuve neshuwa kuti iwe unokwanisa kushanda pane iyo data data irimo mune inosiyana. Kana isingakodzeri, shandura, semuenzaniso, wedzera mamiriro kana edza..catch block - uye uwane kutonga pamusoro pekuita kwekushanda.
Stack kufashukira
Kana uchitenda vaimbi verwiyo rweBaby One More Time (ndiyo Britney Spears, hongu), saka izwi rekuti hit muchirevo chechinyorwa ichi rinoreva chishuwo chemuimbi chekudanwa zvakare (heino tsananguro yemamiriro erwiyo rwacho, - chinyorwa chemuturikiri). Zvinogona kunge zviri izvo kuti chishuwo ichi chichatungamira mukuwedzera kwenhamba yekufona muhupenyu chaihwo. Asi mukuronga, uku kudzokororwa, izvo zvinogona kukonzera kukanganisa muchiitiko chekufashukira kwekufona stack.
Iko kukanganisa kunoratidzika seizvi:
Mhosva: Pasisina nzvimbo yakapetwa (Edge)
YemukatiError: yakawandisa kudzokorora (Firefox)
RangeError: Hukuru hwekufona stack saizi hwapfuura (Chrome)
Kufashukira kwe stack kunoitika kana mugadziri asina kufunga nezve base kesi mukudzokorodza, kana iyo kodhi ikasagadzirisa nyaya yakarongwa.
function oneMoreTime(stillBelieve=true, loneliness=0) {
if (!stillBelieve && loneliness < 0) return
loneliness++
return oneMoreTime(stillBelieve, loneliness)
}
Muchiitiko ichi, stillBelieve haambo tarise kune nhema, saka oneMoreTime ichadaidzwa nguva dzese, asi basa racho harife rakapera.
Kana iwe ukatanga kuvimba neshamwari mbiri, izvi zvinoderedza kusurukirwa, uye haufaniri kumirira kudana.
function oneMoreTime(stillBelieve=true, loneliness=0) {
if (!stillBelieve && loneliness < 0) return
loneliness--
stillBelieve = false
return oneMoreTime(stillBelieve, loneliness)
}
Muenzaniso ungave zviitiko zvine zvishwe zvisingaperi, uko sisitimu isingaratidze meseji yekukanganisa, asi peji iyo iyo JavaScript kodhi inourayiwa inongooma. Izvi zvinoitika kana iyo nguva loop isina mamiriro ekugumisa.
let worldEnded = false
while (worldEnded !== true) {
console.log("Keep on dancin' till the world ends")
}
Dambudziko rinogona kugadziriswa sezvinotevera:
let worldEnded = false
while (worldEnded !== true) {
console.log("Keep on dancin' till the world ends")
worldEnded = true
}
Debugging Infinite Loops uye Recursions
Kana iwe uine dambudziko nekusingaperi loop, unofanirwa kuvhara iyo tebhu muChrome kana Edge, uye hwindo rebrowser muFirefox. Mushure maizvozvi, unofanirwa kunyatsoongorora kodhi. Kana iwe usingakwanise kuwana dambudziko, iwe unofanirwa kuwedzera iyo debugger kuraira kune loop kana basa uye tarisa kukosha kwezvakasiyana. Kana mhedzisiro isingaenderane neinotarisirwa, wozoitsiva, izvi zvinogona kuitwa nyore.
Mumuenzaniso uri pamusoro, debugger inofanira kuwedzerwa semutsara wekutanga webasa kana loop. Ipapo iwe unofanirwa kuvhura iyo debug tebhu muChrome, uchiongorora zvinosiyana muhukuru. Uchishandisa bhatani rinotevera, unogona kuteedzera shanduko yavo neyega yega iteration. Zvese zviri nyore kuita, uye kazhinji, dambudziko rinowanikwa.
Unogona kuverenga zvakawanda nezve izvi zvese pano () uye pano ().
Syntax kukanganisa
Imwe yezvikanganiso zvakajairika muJavaScript ndeye SyntaxError. Mameseji edhita ekuwedzera anogona kubatsira kudzivirira iwo. Semuenzaniso, Bracket Pair Colorizer inomaka mabhuraketi mukodhi mune akasiyana mavara, uye Prettier kana yakafanana yekuongorora chishandiso inokutendera iwe nekukurumidza kuwana zvikanganiso. Iyo yakanakisa sarudzo yekudzikisa mukana weSyntaxError ishoma nesting.
Govera mumashoko: chii chaunoita kuti udzivise kukanganisa kana kukurumidza kuona nekubvisa?
Skillbox inokurudzira:
- Makore maviri anoshanda kosi .
- Yepamhepo kosi .
- Kosi yegore rimwechete .
Source: www.habr.com
