Eshu, ngikwenzile futhi: Ukulungisa amaphutha avamile ku-JavaScript

Eshu, ngikwenzile futhi: Ukulungisa amaphutha avamile ku-JavaScript

Ukubhala ikhodi ye-JavaScript kungaba inselele futhi kwesinye isikhathi kusabise kakhulu, njengoba onjiniyela abaningi bejwayelene nayo. Ngesikhathi somsebenzi, amaphutha avela ngokungagwemeki, futhi amanye awo aphindaphindwa kaningi. Lesi sihloko, esiqondiswe kubathuthukisi be-novice, sikhuluma ngalawa maphutha nokuthi angawaxazulula kanjani. Ukuze kucace, amagama emisebenzi, izakhiwo kanye nezinto athathwe kuwo ingoma ethandwayo. Konke lokhu kukusiza ukuthi ukhumbule ngokushesha ukuthi ungawalungisa kanjani amaphutha ajwayelekile.

Siyakukhumbuza: kubo bonke abafundi be-"Habr" - isaphulelo sama-ruble angu-10 lapho ubhalisa kunoma yisiphi isifundo se-Skillbox usebenzisa ikhodi yephromoshini ethi "Habr".

I-Skillbox iyancoma: Isifundo esiwusizo "I-Mobile Developer PRO".

I-TypeError: isakhiwo asichazwanga

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)

Ikhodi yesibonelo engenhla iphonsa iphutha I-Uncaught TypeError: Ayikwazi ukufunda impahla 'inhlanhla' yokungachazwa. Inkinga ukuthi into yentombazane ayinayo indawo enegama, nakuba inalo igama. Futhi njengoba impahla eqanjwe intombazane ingachazwanga, awukwazi ukuyifinyelela, ngoba ngokusemthethweni ayikho. Kodwa uma ushintsha girl.named.lucky with girl.name, khona-ke konke kuzosebenza futhi uhlelo luzobuya Lucky.

Ungafunda kabanzi mayelana nezakhiwo funda lapha.

Ungawaxazulula kanjani ama-TypeErrors

Ama-TypeErrors enzeka uma umhleli ezama ukwenza izenzo kudatha ezingafani nohlobo oluthile. Izibonelo zifaka phakathi ukusebenzisa .bold(), ukucela into engachazwanga, noma ukubiza umsebenzi ongewona umsebenzi empeleni.

Ngakho-ke, uma uzama ukushayela intombazane(), uzothola iphutha elithi Uncaught TypeError: yourVariable.bold akuwona umsebenzi futhi intombazane ayiwona umsebenzi, ngoba empeleni iyinto ebizwa, hhayi umsebenzi.

Ukuze uqedele amaphutha, udinga ukufunda okuguquguqukayo. Ngakho, yini intombazane? Ibizwa ngani intombazane? Ungathola ngokuhlaziya ikhodi, ubonise okuguquguqukayo usebenzisa i-console.log, umyalo wokususa iphutha, noma ngokubiza igama eliguquguqukayo kukhonsoli. Udinga ukwenza isiqiniseko sokuthi kungenzeka ukusebenzisa uhlobo lwedatha equkethwe kokuguquguqukayo. Uma ingalingani, yishintshe, isibonelo, engeza umbandela noma zama..bamba ibhulokhi - futhi uthole ukulawula ukwenziwa komsebenzi.

Ukuchichima Kwesitaki

Uma ukholwa ukuthi ababhali bamagama eculo elithi Baby One More Time (leli nguBritney Spears, yebo), igama elithi hit kulo mongo lisho isifiso somculi ukuphinde abizwe (nansi incazelo yawo kanye umongo wengoma. ingoma - inothi lomhumushi). Kungenzeka ukuthi lesi sifiso sizoholela ekwandeni kwenani lezingcingo empilweni yangempela. Kodwa ezinhlelweni, lokhu kuyimpinda engabangela iphutha uma isitaki sekholi sichichima.

Amaphutha abukeka kanjena:

Iphutha: Isikhala sesitaki siphelile (Edge)
Iphutha Langaphakathi: ukuphindaphinda okuningi (Firefox)
I-RangeError: Usayizi omkhulu wesitaki wekholi udluliwe (Chrome)

Ukuchichima kwesitaki kwenzeka uma unjiniyela enganaki isimo esiyisisekelo ku-recursion, noma uma ikhodi ingabheki icala elihlosiwe.

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

Kulokhu, i- stillBelieve ayinakuze ibe amanga, ngakho-ke i-OneMoreTime izobizwa njalo, kodwa umsebenzi awusoze waphela.

Uma uqala ukuthembela kubangane ababili, lokhu kuzonciphisa isizungu, futhi ngeke kudingeke ulinde ucingo.

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

Isibonelo yizimo ezinamalophu angapheli, lapho isistimu ingakhiqizi umlayezo wephutha, kodwa ikhasi lapho kukhishwa khona ikhodi ye-JavaScript livele libe yiqhwa. Lokhu kwenzeka uma iluphu yesikhathi ingenaso isimo sokunqanyulwa.

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

Ungakwazi ukuxazulula inkinga ngale ndlela elandelayo:

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

Ukulungisa amalophu angapheli nama-recursions

Uma unenkinga ye-loop engapheli, udinga ukuvala ithebhu ku-Chrome noma i-Edge, bese uvala iwindi lesiphequluli kuFirefox. Ngemva kwalokhu, udinga ukuhlaziya ngokucophelela ikhodi. Uma ungayitholi inkinga, kufanelekile ukwengeza umyalo wokususa iphutha ku-loop yakho noma umsebenzi futhi uhlole amanani wezinto eziguquguqukayo. Uma umphumela ungahambisani nalokho obekulindelekile, khona-ke siyayishintsha, lokhu kungenziwa kalula.

Esibonelweni esingenhla, i-debugger kufanele yengezwe njengomugqa wokuqala womsebenzi noma iluphu. Bese udinga ukuvula ithebhu yokususa iphutha ku-Chrome, uhlaziye okuguquguqukayo kububanzi. Ngokusebenzisa inkinobho elandelayo ungakwazi ukulandelela izinguquko zabo ekuphindaphindweni ngakunye. Konke lokhu kulula ukukwenza, futhi ezimweni eziningi inkinga itholakala.

Ungafunda kabanzi ngakho konke lokhu lapha (okwe-Chrome) futhi lapha (okweFirefox).

Iphutha le-syntax

Elinye lamaphutha ajwayelekile ku-JavaScript i-SyntaxError. Izandiso zomhleli wombhalo zizokusiza ukuthi uzigweme. Isibonelo, i-Bracket Pair Colorizer imaka amabakaki kukhodi enemibala ehlukene, futhi i-Prettier noma ithuluzi elifanayo lokuhlaziya lenza kube nokwenzeka ukuthola amaphutha ngokushesha. Inketho engcono kakhulu yokunciphisa amathuba e-SyntaxError wukuhlala kancane.

Yabelana kumazwana: wenzani ukuze uvimbele amaphutha noma uwathole ngokushesha futhi uwaqede?

I-Skillbox iyancoma:

Source: www.habr.com

Engeza amazwana