{"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\/lv\/blog\/news\/oops-i-did-it-again-otladka-rasprostranennyh-oshibok-v-javascript","title":{"rendered":"Oops, es atkal to izdar\u012bju: izsekojums izplat\u012bt\u0101kaj\u0101m k\u013c\u016bd\u0101m JavaScript","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Oops, es atkal to izdar\u012bju: izsekojums izplat\u012bt\u0101kaj\u0101m k\u013c\u016bd\u0101m JavaScript\" src=\"\/wp-content\/uploads\/2019\/04\/1d3b45a6cf245d9f55f5a69c9b477d88.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n <br \/>\nDa\u017ereiz JavaScript koda rakst\u012b\u0161ana var b\u016bt sare\u017e\u0123\u012bta, un da\u017eiem izstr\u0101d\u0101t\u0101jiem t\u0101 pat var rad\u012bt bailes. Darba proces\u0101 neizb\u0113gami rodas k\u013c\u016bdas, un da\u017eas no t\u0101m atk\u0101rtojas diezgan bie\u017ei. \u0160aj\u0101 rakst\u0101, kas paredz\u0113ts ies\u0101c\u0113jiem izstr\u0101d\u0101t\u0101jiem, tiek apskat\u012btas \u0161\u012bs k\u013c\u016bdas un to nov\u0113r\u0161anas veidi. Piem\u0113ri funkciju, \u012bpa\u0161\u012bbu un objektu nosaukumi \u0146emti no <noindex><a rel=\"nofollow\" href=\"https:\/\/genius.com\/Britney-spears-lucky-lyrics\">popul\u0101ras dziesmas<\/a><\/noindex>. Tas viss pal\u012bdz \u0101tri atcer\u0113ties, k\u0101 labot izplat\u012btas k\u013c\u016bdas. <br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<blockquote><p><b>Atg\u0101din\u0101m:<\/b> <i>visiem \u00abHabr\u00bb las\u012bt\u0101jiem \u2014 atlaide 10 000 rub\u013cu re\u0123istr\u0113joties jebkur\u0101 Skillbox kurs\u0101 ar promo kodu \u00abHabr\u00bb.<\/i><\/p>\n<p><b>Skillbox iesaka:<\/b> Praktiskais kurss <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\">\u00abMobilais izstr\u0101d\u0101t\u0101js PRO\u00bb<\/a><\/noindex>.\n<\/p><\/blockquote>\n<p><\/p>\n<h3>TypeError: \u012bpa\u0161\u012bba nav defin\u0113ta<\/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>\nIepriek\u0161 nor\u0101d\u012btais koda piem\u0113rs atgrie\u017e k\u013c\u016bdu Uncaught TypeError: Cannot read property \u2018lucky\u2019 of undefined. Probl\u0113ma ir t\u0101da, ka objektam girl nav \u012bpa\u0161\u012bbas named, lai gan ir \u012bpa\u0161\u012bba name. T\u0101 k\u0101 \u012bpa\u0161\u012bba girl.named nav defin\u0113ta, pie t\u0101s nevar piek\u013c\u016bt, jo form\u0101li t\u0101 nepast\u0101v. Tom\u0113r, ja aizst\u0101t girl.named.lucky ar girl.name, viss darbosies un programma atgriez\u012bs Lucky.<\/p>\n<p>Vair\u0101k par \u012bpa\u0161\u012bb\u0101m var <noindex><a rel=\"nofollow\" href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/JavaScript\/Guide\/Working_with_Objects\">izlas\u012bt \u0161eit<\/a><\/noindex>.<\/p>\n<h3>TypeError k\u013c\u016bdu nov\u0113r\u0161anas veidi<\/h3>\n<p>\nTypeError k\u013c\u016bdas rodas, kad programm\u0113t\u0101js m\u0113\u0123ina veikt darb\u012bbas ar datiem, kas neatbilst noteiktam tipam. Piem\u0113ram, var piemin\u0113t .bold() izmanto\u0161anu, pieprasot undefined \u012bpa\u0161\u012bbu vai izsaucot funkciju, kas faktiski nav funkcija.<\/p>\n<p>T\u0101d\u0113j\u0101di, ja m\u0113\u0123in\u0101t izsaukt girl(), par\u0101d\u012bsies k\u013c\u016bda Uncaught TypeError: yourVariable.bold is not a function un girl is not a function, jo faktiski tiek izsaukts objekts, nevis funkcija.<\/p>\n<p>Lai nov\u0113rstu k\u013c\u016bdas, ir j\u0101izp\u0113ta main\u012bgie. T\u0101d\u0113j\u0101di, kas ir girl? Un kas ir girl.named? To var noskaidrot, ja analiz\u0113jam kodu, izmantojam console.log, ievie\u0161am debugger komandu vai izsaucam main\u012bg\u0101 nosaukumu konsol\u0113. J\u0101nodro\u0161ina, ka ir iesp\u0113jams str\u0101d\u0101t ar datu tipu, kas satur main\u012bgais. Ja tas nepiem\u0113rots, mainiet to, piem\u0113ram, pievienojot nosac\u012bjumu vai try..catch bloku \u2014 un ieg\u016bstiet kontroli p\u0101r oper\u0101cijas izpildi.<\/p>\n<h3>Steka p\u0101rpild\u012bjums<\/h3>\n<p>\nJa tic\u0113t dziesmas Baby One More Time autoriem (tas ir Britney Spears, j\u0101), tad v\u0101rds hit \u0161aj\u0101 kontekst\u0101 noz\u012bm\u0113 dzied\u0101t\u0101jas v\u0113lmi, lai vi\u0146ai piezvana v\u0113lreiz (\u0161eit ir pa\u0161a dziesmas konteksta skaidrojums \u2014 tulkot\u0101ja piez\u012bme). Pavisam iesp\u0113jams, ka \u0161\u012b v\u0113lme rad\u012bs zvanu pieaugumu re\u0101laj\u0101 dz\u012bv\u0113. Bet programm\u0113\u0161an\u0101 tas ir rekursija, kas var izrais\u012bt k\u013c\u016bdu, ja aicin\u0101jumu steks ir p\u0101rpild\u012bts.<\/p>\n<p>K\u013c\u016bdas izskat\u0101s \u0161\u0101di:<\/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 \/>\nSteka p\u0101rpl\u016bde notiek, ja izstr\u0101d\u0101t\u0101js nav \u0146\u0113mis v\u0113r\u0101 pamata gad\u012bjumu rekursij\u0101, vai ja kods nepiev\u0113r\u0161as paredz\u0113tajam gad\u012bjumam.<\/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>\n\u0160aj\u0101 gad\u012bjum\u0101 stillBelieve nekad nevar pie\u0146emt v\u0113rt\u012bbu false, t\u0101p\u0113c katru reizi notiks oneMoreTime izsaukums, bet funkcijas izpilde t\u0101 ar\u012b nebeigsies.<\/p>\n<p>Ja s\u0101ksim cer\u0113t uz diviem draugiem, tas samazin\u0101s loneliness (vienatni), un zvanu varb\u016bt nemaz nevajadz\u0113s gaid\u012bt.<\/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>\nPar piem\u0113ru var min\u0113t bezgal\u012bgos ciklus, kad sist\u0113ma neizdod k\u013c\u016bdas zi\u0146ojumu, bet lapa, kur\u0101 tiek izpild\u012bts JavaScript kods, vienk\u0101r\u0161i sasalst. Tas notiek, ja while ciklam nav pabeig\u0161anas nosac\u012bjuma.<\/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\u0113mu var atrisin\u0101t \u0161\u0101d\u0101 veid\u0101:<\/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>Bezgala ciklu un rekursiju atk\u013c\u016bdo\u0161ana<\/h3>\n<p>\nJa rodas probl\u0113ma ar bezgal\u012bgu ciklu, Chrome vai Edge j\u0101aizver cilne, bet Firefox \u2014 p\u0101rl\u016bkprogrammas logs. P\u0113c tam r\u016bp\u012bgi j\u0101p\u0101rbauda kode. Ja probl\u0113mu neizdodas atrast, v\u0113rts pievienot debugger komandu ciklam vai funkcijai un p\u0101rbaud\u012bt main\u012bgo v\u0113rt\u012bbas. Ja rezult\u0101ts neatbilst gaid\u012btajam, to var viegli aizst\u0101t.<\/p>\n<p>Piem\u0113r\u0101, kas min\u0113ts iepriek\u0161, debugger j\u0101ievieto funkcijas vai cilpas pirmaj\u0101 rind\u0101. P\u0113c tam j\u0101atver debaga cilne Chrome, lai analiz\u0113tu main\u012bg\u0101s scope. Ar next pogu var izsekot to izmai\u0146\u0101m katr\u0101 iter\u0101cij\u0101. To visu izdar\u012bt ir vienk\u0101r\u0161i, un liel\u0101kaj\u0101 da\u013c\u0101 gad\u012bjumu probl\u0113ma ir atrodama.<\/p>\n<p>S\u012bk\u0101k par to visu var las\u012bt \u0161eit (<noindex><a rel=\"nofollow\" href=\"https:\/\/developers.google.com\/web\/tools\/chrome-devtools\/javascript\/\">Chrome<\/a><\/noindex>) un \u0161eit (<noindex><a rel=\"nofollow\" href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Tools\/Debugger\">Firefox<\/a><\/noindex>).<\/p>\n<h3>Sintakses k\u013c\u016bda<\/h3>\n<p>\nViens no visbie\u017e\u0101kaj\u0101m k\u013c\u016bd\u0101m JavaScript ir SyntaxError. To nov\u0113rst pal\u012bdz\u0113s teksta redaktora papla\u0161in\u0101jumi. T\u0101tad, Bracket Pair Colorizer iez\u012bm\u0113 iekavas kod\u0101 ar da\u017e\u0101d\u0101m kr\u0101s\u0101m, bet Prettier vai l\u012bdz\u012bgs anal\u012bzes r\u012bks \u013cauj \u0101tri atrast k\u013c\u016bdas. Lab\u0101kais variants, lai samazin\u0101tu SyntaxError iesp\u0113jam\u012bbu, ir minim\u0101la iedzi\u013cin\u0101\u0161an\u0101s.<\/p>\n<p>Dalieties koment\u0101ros: ko j\u016bs dar\u0101t, lai nepie\u013cautu k\u013c\u016bdas vai \u0101tri t\u0101s atkl\u0101tu un nov\u0113rstu?<\/p>\n<blockquote><p><b>Skillbox iesaka:<\/b><\/p>\n<ul>\n<li>Divu gadu praktiskais kurss <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\">\u201eEs esmu PRO t\u012bmek\u013ca izstr\u0101d\u0101t\u0101js\u201d<\/a><\/noindex>.<\/li>\n<li>Tie\u0161saistes kurss <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\">\u00abC# izstr\u0101d\u0101t\u0101js no 0\u00bb<\/a><\/noindex>.<\/li>\n<li>Praktiskais gada kurss <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 izstr\u0101d\u0101t\u0101js no 0 l\u012bdz PRO\u201d<\/a><\/noindex>.\n<\/li>\n<\/ul>\n<\/blockquote>\n<p>Avots: <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\/lv\/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=\"lv_LV\" \/>\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\/lv\/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: k\u013c\u016bdu atkl\u0101\u0161ana JavaScript | ProHoster","description":"Da\u017ereiz kod\u0113\u0161ana.","canonical_url":"https:\/\/prohoster.info\/lv\/blog\/news\/oops-i-did-it-again-otladka-rasprostranennyh-oshibok-v-javascript","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"lv_LV","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\/lv\/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\/lv\/wp-json\/wp\/v2\/posts\/32769","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/comments?post=32769"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/posts\/32769\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/media\/24548"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/media?parent=32769"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/categories?post=32769"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/tags?post=32769"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}