{"id":32769,"date":"2019-10-31T21:48:48","date_gmt":"2019-10-31T18:48:48","guid":{"rendered":"https:\/\/prohoster.info\/blog\/oops-i-did-it-again-otladka-rasprostranennyh-oshibok-v-javascript\/"},"modified":"2019-10-31T21:48:48","modified_gmt":"2019-10-31T18:48:48","slug":"oops-i-did-it-again-otladka-rasprostranennyh-oshibok-v-javascript","status":"publish","type":"post","link":"https:\/\/prohoster.info\/sq\/blog\/news\/oops-i-did-it-again-otladka-rasprostranennyh-oshibok-v-javascript","title":{"rendered":"Oops, e b\u00ebra p\u00ebrs\u00ebri: zgjidhja e gabimeve t\u00eb zakonshme n\u00eb JavaScript","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Oops, e b\u00ebra p\u00ebrs\u00ebri: zgjidhja e gabimeve t\u00eb zakonshme n\u00eb JavaScript\" src=\"\/wp-content\/uploads\/2019\/04\/1d3b45a6cf245d9f55f5a69c9b477d88.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n <br \/>\nShpesh hera kodimi n\u00eb JavaScript \u00ebsht\u00eb e v\u00ebshtir\u00eb, ndonj\u00ebher\u00eb madje frik\u00ebson, gj\u00eb q\u00eb i \u00ebsht\u00eb e njohur shum\u00eb zhvilluesve. Gjat\u00eb pun\u00ebs, ndodhin gabime t\u00eb pashmangshme, disa prej t\u00eb cilave p\u00ebrs\u00ebriten shpesh. Artikulli, i orientuar p\u00ebr zhvilluesit e rinj, flet p\u00ebr k\u00ebto gabime dhe m\u00ebnyrat p\u00ebr t'iu p\u00ebrgjigjur atyre. P\u00ebr ilustrim, emrat e funksioneve, vetive dhe objekteve jan\u00eb marr\u00eb nga <noindex><a rel=\"nofollow\" href=\"https:\/\/genius.com\/Britney-spears-lucky-lyrics\">nj\u00eb k\u00ebng\u00eb popullore<\/a><\/noindex>. T\u00eb gjitha k\u00ebto ndihmojn\u00eb p\u00ebr ta mbajtur mend shpejt se si t\u00eb rregullohen gabimet e zakonshme. <br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<blockquote><p><b>Kujtojm\u00eb:<\/b> <i>p\u00ebr t\u00eb gjith\u00eb lexuesit e \u00abHabra\u00bb \u2014 zbritje prej 10,000 rublesh p\u00ebr regjistrimin n\u00eb \u00e7do kurs Skillbox me kodin promovues \u00abHabr\u00bb.<\/i><\/p>\n<p><b>Skillbox rekomandon:<\/b> Kurs praktik <noindex><a rel=\"nofollow\" href=\"https:\/\/skillbox.ru\/agima\/?utm_source=skillbox.media&amp;utm_medium=habr.com&amp;utm_campaign=AGIMA&amp;utm_content=articles&amp;utm_term=oops\">\u00abMobil developer PRO\u00bb<\/a><\/noindex>.\n<\/p><\/blockquote>\n<p><\/p>\n<h3>TypeError: prona e pa p\u00ebrcaktuar<\/h3>\n<p><\/p>\n<pre><code class=\"javascript\">let girl = {\n    name: \"Lucky\",\n    location: \"Hollywood\",\n    profession: \"star\",\n    thingsMissingInHerLife: true,\n    lovely: true,\n    cry: function() {\n        return \"cry, cry, cries in her lonely heart\"\n    }\n}\nconsole.log(girl.named.lucky)<\/code><\/pre>\n<p>\nShembulli i kodit t\u00eb m\u00ebsip\u00ebrm jep gabimin Uncaught TypeError: Cannot read property \u2018lucky\u2019 of undefined. Problemi \u00ebsht\u00eb se objekti girl nuk ka pron\u00ebn named, megjithat\u00eb ka pron\u00ebn name. Dhe pasi prona girl.named nuk \u00ebsht\u00eb e p\u00ebrcaktuar, nuk mund t\u00eb qasemi tek ajo, sepse formalisht ajo nuk ekziston. Por, n\u00ebse e z\u00ebvend\u00ebsoni girl.named.lucky me girl.name, at\u00ebher\u00eb gjith\u00e7ka do t\u00eb funksionoj\u00eb dhe programi do t\u00eb kthej\u00eb Lucky.<\/p>\n<p>M\u00eb shum\u00eb rreth pronave mund t\u00eb <noindex><a rel=\"nofollow\" href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/JavaScript\/Guide\/Working_with_Objects\">lexoni k\u00ebtu<\/a><\/noindex>.<\/p>\n<h3>M\u00ebnyrat p\u00ebr t\u00eb eliminuar gabimet TypeError<\/h3>\n<p>\nGabimet TypeError ndodhin kur programuesi p\u00ebrpiqet t\u00eb kryej\u00eb veprime me t\u00eb dh\u00ebnat q\u00eb nuk i p\u00ebrkasin nj\u00eb tipi t\u00eb caktuar. Si nj\u00eb shembull, mund t\u00eb merret aplikimi i .bold(), k\u00ebrkimi i pron\u00ebs undefined ose thirrja e nj\u00eb funksioni, i cili n\u00eb t\u00eb v\u00ebrtet\u00eb nuk \u00ebsht\u00eb nj\u00eb funksion.<\/p>\n<p>Pra, n\u00ebse provoni t\u00eb th\u00ebrrisni girl (), do t\u00eb shfaqet gabimi Uncaught TypeError: yourVariable.bold is not a function dhe girl is not a function, pasi n\u00eb t\u00eb v\u00ebrtet\u00eb po thirret objekti, dhe jo funksioni.<\/p>\n<p>P\u00ebr t\u00eb eliminuar gabimet, duhet t\u00eb studiohen variablat. Pra, \u00e7far\u00eb \u00ebsht\u00eb girl? \u00c7far\u00eb \u00ebsht\u00eb girl.named? Mund ta m\u00ebsoni k\u00ebt\u00eb duke analizuar kodin, duke e nxjerr\u00eb variabl\u00ebn me an\u00eb t\u00eb console.log, komand\u00ebs debugger ose duke thirrur emrin e variabl\u00ebs n\u00eb konsol. Duhet t\u00eb siguroheni q\u00eb t\u00eb keni mund\u00ebsi t\u00eb operoni me tipin e t\u00eb dh\u00ebnave q\u00eb p\u00ebrmban variabla. N\u00ebse nuk i p\u00ebrshtatet, ndryshojeni, p\u00ebr shembull, shtoni kushte ose bllok try..catch \u2014 dhe merrni kontroll mbi ekzekutimin e operacionit.<\/p>\n<h3>P\u00ebrmbysja e stack-ut<\/h3>\n<p>\nN\u00ebse u besojm\u00eb autor\u00ebve t\u00eb k\u00ebng\u00ebs Baby One More Time (po, \u00ebsht\u00eb Britney Spears), at\u00ebher\u00eb fjala hit n\u00eb k\u00ebt\u00eb kontekst do t\u00eb thot\u00eb d\u00ebshir\u00ebn e k\u00ebng\u00ebtares p\u00ebr t\u00eb marr\u00eb nj\u00eb telefonat\u00eb tjet\u00ebr (k\u00ebtu \u00ebsht\u00eb nj\u00eb shpjegim i kontekstit t\u00eb k\u00ebng\u00ebs, \u2013 sh\u00ebnim i p\u00ebrkthyesit). Ka shum\u00eb mund\u00ebsi q\u00eb kjo d\u00ebshir\u00eb t\u00eb \u00e7oj\u00eb n\u00eb nj\u00eb rritje t\u00eb numrit t\u00eb telefonatave n\u00eb jet\u00ebn reale. Por n\u00eb programim, kjo \u00ebsht\u00eb rekursivitet, nj\u00eb m\u00ebnyr\u00eb e cila mund t\u00eb shkaktoj\u00eb nj\u00eb gabim n\u00eb rast se mbushen thikat e thirrjes.<\/p>\n<p>Gabimet duket n\u00eb vijim:<\/p>\n<p><i>Gabim: Mungon hap\u00ebsira e stack-ut (Edge)<br \/>\nGabimBrendsh\u00ebm: shum\u00eb rekursivitet (Firefox)<br \/>\nGabimRang: Sizmi maksimal i thikave t\u00eb thirrjes \u00ebsht\u00eb tejkaluar (Chrome)<br \/>\n <\/i><br \/>\nTejkaluar thik\u00ebn e thirrjes ndodh n\u00ebse zhvilluesi nuk ka marr\u00eb parasysh rastin baz\u00eb n\u00eb rekursivitet, ose n\u00ebse kodi nuk i referohet rastit t\u00eb parashikuar.<\/p>\n<pre><code class=\"javascript\">function oneMoreTime(stillBelieve=true, loneliness=0) {\n    if (!stillBelieve &amp;&amp; loneliness &lt; 0) return\n    loneliness++\n    return oneMoreTime(stillBelieve, loneliness)\n}<\/code><\/pre>\n<p>\nN\u00eb k\u00ebt\u00eb rast, stillBelieve kurr\u00eb nuk mund t\u00eb marr\u00eb vler\u00ebn false, k\u00ebshtu q\u00eb \u00e7do her\u00eb do t\u00eb ndodh\u00eb thirrja e oneMoreTime, por ekzekutimi i funksionit nuk do t\u00eb p\u00ebrfundoj\u00eb kurr\u00eb.<\/p>\n<p>N\u00ebse fillon t\u00eb shpresosh te dy shok\u00eb, kjo do t\u00eb ul\u00eb loneliness (vetmia), dhe telefonat\u00ebn mund t\u00eb mos e pres\u00ebsh m\u00eb.<\/p>\n<pre><code class=\"javascript\">function oneMoreTime(stillBelieve=true, loneliness=0) {\n    if (!stillBelieve &amp;&amp; loneliness &lt; 0) return\n    loneliness--\n    stillBelieve = false\n    return oneMoreTime(stillBelieve, loneliness)\n}<\/code><\/pre>\n<p>\nSi nj\u00eb shembull mund t\u00eb p\u00ebrmendim rastet me cikle t\u00eb pafund, kur sistemi nuk jep nj\u00eb mesazh gabimi, por faqja n\u00eb t\u00eb cil\u00ebn ekzekutohet kodi JavaScript thjesht ngec. Kjo ndodh n\u00ebse cikli while nuk ka nj\u00eb kusht p\u00ebr p\u00ebrfundim.<\/p>\n<pre><code class=\"javascript\">let worldEnded = false\n \nwhile (worldEnded !== true) {\n  console.log(\"Continue t\u00eb vallzojm\u00eb derisa bota p\u00ebrfundon\")\n}<\/code><\/pre>\n<p>\nProblemi mund t\u00eb zgjidhet n\u00eb k\u00ebt\u00eb m\u00ebnyr\u00eb:<\/p>\n<pre><code class=\"javascript\">let worldEnded = false\n \nwhile (worldEnded !== true) {\n  console.log(\"Continue t\u00eb vallzojm\u00eb derisa bota p\u00ebrfundon\")\n  worldEnded = true\n}<\/code><\/pre>\n<p><\/p>\n<h3>Debugimi i cikleve t\u00eb pafund dhe rekursioneve<\/h3>\n<p>\nN\u00ebse keni nj\u00eb problem me nj\u00eb cik\u00ebl t\u00eb pafund, n\u00eb Chrome ose Edge duhet t\u00eb mbyllni skedarin, nd\u00ebrsa n\u00eb Firefox \u2013 dritaren e shfletuesit. Pas k\u00ebsaj, duhet t\u00eb analizoni me kujdes kodin. N\u00ebse nuk mund t\u00eb gjeni problemin, mund t\u00eb shtoni komand\u00ebn debugger n\u00eb cik\u00ebl ose funksion dhe t\u00eb kontrolloni vlerat e ndryshoreve. N\u00ebse rezultati nuk i p\u00ebrket pritshm\u00ebrive, at\u00ebher\u00eb z\u00ebvend\u00ebsohet, kjo mund t\u00eb b\u00ebhet leht\u00ebsisht.<\/p>\n<p>N\u00eb shembullin e dh\u00ebn\u00eb m\u00eb sip\u00ebr, debugger duhet t\u00eb shtohet si rreshti i par\u00eb i funksionit ose ciklit. M\u00eb pas duhet t\u00eb hapni sked\u00ebn e debagimit n\u00eb Chrome, duke analizuar variablat n\u00eb scope. Me butonin next mund t\u00eb ndiheni n\u00eb ndjekjen e ndryshimeve t\u00eb tyre n\u00eb \u00e7do it\u00ebracion. T\u00eb b\u00ebsh t\u00eb gjitha k\u00ebto \u00ebsht\u00eb e thjesht\u00eb, dhe n\u00eb shumic\u00ebn e rasteve problemi gjendet.<\/p>\n<p>M\u00eb shum\u00eb rreth t\u00eb gjitha k\u00ebtyre mund t\u00eb lexoni k\u00ebtu (<noindex><a rel=\"nofollow\" href=\"https:\/\/developers.google.com\/web\/tools\/chrome-devtools\/javascript\/\">p\u00ebr Chrome<\/a><\/noindex>) dhe k\u00ebtu (<noindex><a rel=\"nofollow\" href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Tools\/Debugger\">p\u00ebr Firefox<\/a><\/noindex>).<\/p>\n<h3>Gabim n\u00eb sintaks\u00eb<\/h3>\n<p>\nNj\u00eb nga gabimet m\u00eb t\u00eb zakonshme n\u00eb JavaScript \u00ebsht\u00eb SyntaxError. T\u00eb ikni nga ato mund t'ju ndihmojn\u00eb zgjerimet e redaktorit t\u00eb tekstit. P\u00ebr shembull, Bracket Pair Colorizer sh\u00ebnon kllapat n\u00eb kod me ngjyra t\u00eb ndryshme, nd\u00ebrsa Prettier ose nj\u00eb mjet analize i ngjash\u00ebm ofron mund\u00ebsin\u00eb p\u00ebr t\u00eb gjetur shpejt gabimet. Zgjedhja m\u00eb e mir\u00eb p\u00ebr t\u00eb reduktuar mund\u00ebsin\u00eb e shfaqjes s\u00eb SyntaxError \u00ebsht\u00eb minimizimi i thell\u00ebsis\u00eb s\u00eb kodit.<\/p>\n<p>Ndani n\u00eb komentet: \u00e7far\u00eb b\u00ebni p\u00ebr t\u00eb mos b\u00ebr\u00eb gabime ose p\u00ebr t\u00eb zbuluar dhe eliminuar ato shpejt?<\/p>\n<blockquote><p><b>Skillbox rekomandon:<\/b><\/p>\n<ul>\n<li>Kursi praktik dyvje\u00e7ar <noindex><a rel=\"nofollow\" href=\"https:\/\/iamwebdev.skillbox.ru\/?utm_source=skillbox.media&amp;utm_medium=habr.com&amp;utm_campaign=WEBDEVPRO&amp;utm_content=articles&amp;utm_term=oops\">\u00abUn\u00eb jam zhvillues web PRO\u00bb<\/a><\/noindex>.<\/li>\n<li>Kurs online <noindex><a rel=\"nofollow\" href=\"https:\/\/skillbox.ru\/c-sharp\/?utm_source=skillbox.media&amp;utm_medium=habr.com&amp;utm_campaign=CSHDEV&amp;utm_content=articles&amp;utm_term=oops\">\u00abProgramues C# nga 0\u00bb<\/a><\/noindex>.<\/li>\n<li>Kurs praktik nj\u00ebvje\u00e7ar <noindex><a rel=\"nofollow\" href=\"https:\/\/skillbox.ru\/php\/?utm_source=skillbox.media&amp;utm_medium=habr.com&amp;utm_campaign=PHPDEV&amp;utm_content=articles&amp;utm_term=oops\">\u00abZhvillues PHP nga 0 n\u00eb PRO\u00bb<\/a><\/noindex>.\n<\/li>\n<\/ul>\n<\/blockquote>\n<p>Burimi: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/skillbox\/blog\/450194\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u043e\u0440\u043e\u0439 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043a\u043e\u0434\u0430 JavaScript \u0434\u0430\u0435\u0442\u0441\u044f \u0441\u043b\u043e\u0436\u043d\u043e, \u0430 \u0438\u043d\u043e\u0433\u0434\u0430 \u0438 \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u0443\u0433\u0430\u0435\u0442, \u0447\u0442\u043e \u0437\u043d\u0430\u043a\u043e\u043c\u043e \u043c\u043d\u043e\u0433\u0438\u043c \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430\u043c. \u0412 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u0440\u0430\u0431\u043e\u0442\u044b \u043d\u0435\u0438\u0437\u0431\u0435\u0436\u043d\u043e \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u044e\u0442 \u043e\u0448\u0438\u0431\u043a\u0438, \u043f\u0440\u0438\u0447\u0435\u043c \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u0437 \u043d\u0438\u0445 \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u044e\u0442\u0441\u044f \u0447\u0430\u0441\u0442\u0435\u043d\u044c\u043a\u043e. \u0412 \u0441\u0442\u0430\u0442\u044c\u0435, \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u0430\u043d\u043d\u043e\u0439 \u043d\u0430 \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0449\u0438\u0445 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432, \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043e\u0431 \u044d\u0442\u0438\u0445 \u043e\u0448\u0438\u0431\u043a\u0430\u0445 \u0438 \u0441\u043f\u043e\u0441\u043e\u0431\u0430\u0445 \u0438\u0445 \u0440\u0435\u0448\u0435\u043d\u0438\u044f. \u0414\u043b\u044f \u043d\u0430\u0433\u043b\u044f\u0434\u043d\u043e\u0441\u0442\u0438 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u0439, \u0441\u0432\u043e\u0439\u0441\u0442\u0432 \u0438 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u0432\u0437\u044f\u0442\u044b \u0438\u0437 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u043e\u0439 \u043f\u0435\u0441\u043d\u0438. \u0412\u0441\u0435 \u044d\u0442\u043e \u043f\u043e\u043c\u043e\u0433\u0430\u0435\u0442 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":24548,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-32769","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041f\u043e\u0440\u043e\u0439 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043a\u043e\u0434\u0430.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/sq\/blog\/news\/oops-i-did-it-again-otladka-rasprostranennyh-oshibok-v-javascript\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"sq_AL\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47Oops, I did it again: \u043e\u0442\u043b\u0430\u0434\u043a\u0430 \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u043d\u044b\u0445 \u043e\u0448\u0438\u0431\u043e\u043a \u0432 JavaScript | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u043e\u0440\u043e\u0439 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043a\u043e\u0434\u0430.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/sq\/blog\/news\/oops-i-did-it-again-otladka-rasprostranennyh-oshibok-v-javascript\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T18:48:48+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T18:48:48+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Oops, I did it again: debagimi i gabimeve t\u00eb zakonshme n\u00eb JavaScript | ProHoster","description":"Ndonj\u00ebher\u00eb shkruhet kodi.","canonical_url":"https:\/\/prohoster.info\/sq\/blog\/news\/oops-i-did-it-again-otladka-rasprostranennyh-oshibok-v-javascript","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sq_AL","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47Oops, I did it again: \u043e\u0442\u043b\u0430\u0434\u043a\u0430 \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u043d\u044b\u0445 \u043e\u0448\u0438\u0431\u043e\u043a \u0432 JavaScript | ProHoster","og:description":"\u041f\u043e\u0440\u043e\u0439 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043a\u043e\u0434\u0430.","og:url":"https:\/\/prohoster.info\/sq\/blog\/news\/oops-i-did-it-again-otladka-rasprostranennyh-oshibok-v-javascript","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T18:48:48+00:00","article:modified_time":"2019-10-31T18:48:48+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"32769","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-21 12:28:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 02:52:26","updated":"2026-01-21 12:28:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/32769","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/comments?post=32769"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/32769\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media\/24548"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media?parent=32769"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/categories?post=32769"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/tags?post=32769"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}