{"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\/sk\/blog\/news\/oops-i-did-it-again-otladka-rasprostranennyh-oshibok-v-javascript","title":{"rendered":"Oops, urobil som to znova: ladenie be\u017en\u00fdch ch\u00fdb v JavaScripte","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Oops, urobil som to znova: ladenie be\u017en\u00fdch ch\u00fdb v JavaScripte\" src=\"\/wp-content\/uploads\/2019\/04\/1d3b45a6cf245d9f55f5a69c9b477d88.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n <br \/>\nP\u00edsanie k\u00f3du v JavaScripte m\u00f4\u017ee by\u0165 niekedy n\u00e1ro\u010dn\u00e9 a ob\u010das dokonca desiv\u00e9, \u010do je mnoh\u00fdm v\u00fdvoj\u00e1rom zn\u00e1me. Po\u010das pr\u00e1ce nevyhnutne vznikaj\u00fa chyby, pri\u010dom niektor\u00e9 z nich sa objavuj\u00fa pomerne \u010dasto. V \u010dl\u00e1nku, ur\u010denom pre za\u010d\u00ednaj\u00facich v\u00fdvoj\u00e1rov, sa hovor\u00ed o t\u00fdchto chyb\u00e1ch a sp\u00f4soboch ich rie\u0161enia. Pre n\u00e1zornos\u0165 s\u00fa n\u00e1zvy funkci\u00ed, vlastnost\u00ed a objektov prevzat\u00e9 z <noindex><a rel=\"nofollow\" href=\"https:\/\/genius.com\/Britney-spears-lucky-lyrics\">popul\u00e1rnej piesne<\/a><\/noindex>. To v\u0161etko pom\u00e1ha r\u00fdchlo si zapam\u00e4ta\u0165, ako opravi\u0165 be\u017en\u00e9 chyby. <br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<blockquote><p><b>Pripom\u00edname:<\/b> <i>pre v\u0161etk\u00fdch \u010ditate\u013eov \u201eHabr\u201c \u2014 z\u013eava 10 000 rub\u013eov pri zap\u00edsan\u00ed na ak\u00fdko\u013evek kurz Skillbox s promo k\u00f3dom \u201eHabr\u201c.<\/i><\/p>\n<p><b>Skillbox odpor\u00fa\u010da:<\/b> Praktick\u00fd kurz <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\">\u201eMobiln\u00fd v\u00fdvoj\u00e1r PRO\u201c<\/a><\/noindex>.\n<\/p><\/blockquote>\n<p><\/p>\n<h3>TypeError: vlastnos\u0165 nie je definovan\u00e1<\/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>\nPr\u00edklad k\u00f3du uveden\u00fd vy\u0161\u0161ie vyhadzuje chybu Uncaught TypeError: Cannot read property \u2018lucky\u2019 of undefined. Probl\u00e9m spo\u010d\u00edva v tom, \u017ee objekt girl nem\u00e1 vlastnos\u0165 named, aj ke\u010f m\u00e1 vlastnos\u0165 name. A ke\u010f\u017ee vlastnos\u0165 girl.named nie je definovan\u00e1, nie je k nej mo\u017en\u00e9 z\u00edska\u0165 pr\u00edstup, preto\u017ee form\u00e1lne neexistuje. Ak v\u0161ak nahrad\u00edme girl.named.lucky za girl.name, v\u0161etko za\u010dne fungova\u0165 a program vr\u00e1ti Lucky.<\/p>\n<p>Viac o vlastnostiach sa mo\u017eno <noindex><a rel=\"nofollow\" href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/JavaScript\/Guide\/Working_with_Objects\">pre\u010d\u00edta\u0165 tu<\/a><\/noindex>.<\/p>\n<h3>Sp\u00f4soby odstr\u00e1nenia ch\u00fdb TypeError<\/h3>\n<p>\nChyby TypeError sa vyskytuj\u00fa, ke\u010f sa program\u00e1tor pok\u00fa\u0161a vykon\u00e1va\u0165 oper\u00e1cie s \u00fadajmi, ktor\u00e9 nezodpovedaj\u00fa ur\u010dit\u00e9mu typu. Ako pr\u00edklad m\u00f4\u017eeme uvies\u0165 pou\u017eitie .bold(), dotazovanie na vlastnos\u0165 undefined alebo volanie funkcie, ktor\u00e1 v skuto\u010dnosti nie je funkciou.<\/p>\n<p>Tak\u017ee, ak sa pok\u00fasime zavola\u0165 girl (), objav\u00ed sa chyba Uncaught TypeError: yourVariable.bold is not a function a girl is not a function, preto\u017ee sa v skuto\u010dnosti vol\u00e1 objekt, nie funkcia.<\/p>\n<p>Aby sme chyby odstr\u00e1nili, je potrebn\u00e9 presk\u00fama\u0165 premenn\u00e9. \u010co presne je girl? A \u010do je girl.named? Zisti\u0165 to m\u00f4\u017eeme anal\u00fdzou k\u00f3du, v\u00fdpisom premenn\u00fdch pomocou console.log, pr\u00edkazu debugger alebo vyvolan\u00edm n\u00e1zvu premennej v konzole. Je potrebn\u00e9 sa uisti\u0165, \u017ee m\u00e1me mo\u017enos\u0165 manipulova\u0165 s typom \u00fadajov, ktor\u00fd sa nach\u00e1dza v premennej. Ak nevyhovuje, zme\u0148te ho, napr\u00edklad pridajte podmienku alebo blok try..catch \u2013 a z\u00edskate kontrolu nad vykonan\u00edm oper\u00e1cie.<\/p>\n<h3>Preplnenie z\u00e1sobn\u00edka<\/h3>\n<p>\nAk ver\u00edme autorom piesne Baby One More Time (to je Britney Spears, \u00e1no), slovo hit v tomto kontexte znamen\u00e1 \u017eelanie spev\u00e1\u010dky, aby jej zavolali znova (tu je vysvetlenie samotn\u00e9ho kontextu piesne, \u2014 pozn. prekl. ). Je pravdepodobn\u00e9, \u017ee toto \u017eelanie povedie k zv\u00fd\u0161eniu po\u010dtu telefon\u00e1tov v re\u00e1lnom \u017eivote. No v programovan\u00ed ide o rekurziu, ktor\u00e1 m\u00f4\u017ee sp\u00f4sobi\u0165 chybu v pr\u00edpade preplnenia z\u00e1sobn\u00edka volan\u00ed.<\/p>\n<p>Chyby vyzeraj\u00fa nasledovne:<\/p>\n<p><i>Error: Out of stack space (Edge)<br \/>\nInternalError: too much recursion (Firefox)<br \/>\nRangeError: Maximum call stack size exceeded (Chrome)<br \/>\n <\/i><br \/>\nPreplnenie z\u00e1sobn\u00edka nast\u00e1va, ak v\u00fdvoj\u00e1r nezoh\u013eadnil z\u00e1kladn\u00fd pr\u00edpad v rekurzii alebo ak k\u00f3d neodkazuje na predpokladan\u00fd pr\u00edpad.<\/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>\nV tomto pr\u00edpade stillBelieve nikdy nem\u00f4\u017ee nadobudn\u00fa\u0165 hodnotu false, preto sa v\u017edy bude vola\u0165 oneMoreTime, ale vykonanie funkcie sa nikdy nedokon\u010d\u00ed.<\/p>\n<p>Ak za\u010dneme veri\u0165 v dvoch priate\u013eov, zn\u00ed\u017ei sa t\u00fdm loneliness (samota) a telefon\u00e1t nebude potrebn\u00e9 \u010daka\u0165.<\/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>\nPr\u00edkladom m\u00f4\u017eu by\u0165 pr\u00edpady s nekone\u010dn\u00fdmi cyklami, ke\u010f syst\u00e9m nevyd\u00e1 chybov\u00e9 hl\u00e1senie a str\u00e1nka, na ktorej sa vykon\u00e1va JavaScriptov\u00fd k\u00f3d, jednoducho zamrzne. K tomu doch\u00e1dza, ak slu\u010dka while nem\u00e1 podmienku na ukon\u010denie.<\/p>\n<pre><code class=\"javascript\">let worldEnded = false\n \nwhile (worldEnded !== true) {\n  console.log(\"Keep on dancin' till the world ends\")\n}<\/code><\/pre>\n<p>\nProbl\u00e9m mo\u017eno vyrie\u0161i\u0165 nasledovne:<\/p>\n<pre><code class=\"javascript\">let worldEnded = false\n \nwhile (worldEnded !== true) {\n  console.log(\"Keep on dancin' till the world ends\")\n  worldEnded = true\n}<\/code><\/pre>\n<p><\/p>\n<h3>Ladenie nekone\u010dn\u00fdch cyklov a rekurzi\u00ed<\/h3>\n<p>\nAk nastal probl\u00e9m s nekone\u010dn\u00fdm cyklom, v Chrome alebo Edge treba zatvori\u0165 kartu a vo Firefoxe \u2014 okno prehliada\u010da. Potom je potrebn\u00e9 d\u00f4kladne analyzova\u0165 k\u00f3d. Ak sa probl\u00e9m nepodarilo n\u00e1js\u0165, treba prida\u0165 pr\u00edkaz debugger do cyklu alebo funkcie a skontrolova\u0165 hodnotu premenn\u00fdch. Ak v\u00fdsledok nezodpoved\u00e1 o\u010dak\u00e1vaniu, nahra\u010fte ho, to sa d\u00e1 jednoducho spravi\u0165.<\/p>\n<p>V pr\u00edklade, ktor\u00fd je uveden\u00fd vy\u0161\u0161ie, by ste mali prida\u0165 debugger ako prv\u00fd riadok funkcie alebo cyklu. Potom mus\u00edte otvori\u0165 debuggovaciu kartu v Chrome a analyzova\u0165 premenn\u00e9 v scope. Pomocou tla\u010didla next m\u00f4\u017eete sledova\u0165 ich zmenu pri ka\u017edej iter\u00e1cii. Je to jednoduch\u00e9 a v mnoh\u00fdch pr\u00edpadoch je probl\u00e9m odhalen\u00fd.<\/p>\n<p>O v\u0161etkom tomto sa m\u00f4\u017eete dozvedie\u0165 viac tu (<noindex><a rel=\"nofollow\" href=\"https:\/\/developers.google.com\/web\/tools\/chrome-devtools\/javascript\/\">pre Chrome<\/a><\/noindex>) a tu (<noindex><a rel=\"nofollow\" href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Tools\/Debugger\">pre Firefox<\/a><\/noindex>).<\/p>\n<h3>Chyba v syntaxi<\/h3>\n<p>\nJednou z najbe\u017enej\u0161\u00edch ch\u00fdb v JavaScripte je SyntaxError. Vyvarova\u0165 sa im m\u00f4\u017eu pom\u00f4c\u0165 roz\u0161\u00edrenia textov\u00e9ho editora. Tak\u017ee Bracket Pair Colorizer ozna\u010duje z\u00e1tvorky v k\u00f3de r\u00f4znymi farbami, zatia\u013e \u010do Prettier alebo podobn\u00fd analytick\u00fd n\u00e1stroj umo\u017e\u0148uje r\u00fdchlo n\u00e1js\u0165 chyby. Najlep\u0161\u00ed sp\u00f4sob, ako zn\u00ed\u017ei\u0165 pravdepodobnos\u0165 v\u00fdskytu SyntaxError, je minimalizova\u0165 h\u013abku vnorenia.<\/p>\n<p>Pode\u013ete sa v koment\u00e1roch: \u010do rob\u00edte, aby ste sa vyhli chyb\u00e1m alebo ich r\u00fdchlo odhalili a odstr\u00e1nili?<\/p>\n<blockquote><p><b>Skillbox odpor\u00fa\u010da:<\/b><\/p>\n<ul>\n<li>Dvojro\u010dn\u00fd praktick\u00fd kurz <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\">\u201eSom webov\u00fd v\u00fdvoj\u00e1r PRO\u201c<\/a><\/noindex>.<\/li>\n<li>Online kurz <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\">C# v\u00fdvoj\u00e1r od z\u00e1kladov<\/a><\/noindex>.<\/li>\n<li>Praktick\u00fd ro\u010dn\u00fd kurz <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\">\u201ePHP v\u00fdvoj\u00e1r od 0 do PRO\u201c<\/a><\/noindex>.\n<\/li>\n<\/ul>\n<\/blockquote>\n<p>Zdroj: <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.5 - 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\/sk\/blog\/news\/oops-i-did-it-again-otladka-rasprostranennyh-oshibok-v-javascript\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.5\" \/>\n\t\t<meta property=\"og:locale\" content=\"sk_SK\" \/>\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\/sk\/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: ladenie be\u017en\u00fdch ch\u00fdb v JavaScripte | ProHoster","description":"Niekedy je to p\u00edsanie k\u00f3du.","canonical_url":"https:\/\/prohoster.info\/sk\/blog\/news\/oops-i-did-it-again-otladka-rasprostranennyh-oshibok-v-javascript","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sk_SK","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\/sk\/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\/sk\/wp-json\/wp\/v2\/posts\/32769","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/comments?post=32769"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/posts\/32769\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/media\/24548"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/media?parent=32769"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/categories?post=32769"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/tags?post=32769"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}