{"id":7431,"date":"2022-10-06T17:03:33","date_gmt":"2022-10-06T11:33:33","guid":{"rendered":"https:\/\/www.innovationm.com\/blog\/?p=7431"},"modified":"2022-10-06T17:03:33","modified_gmt":"2022-10-06T11:33:33","slug":"hoisting-in-javascript-variables-function","status":"publish","type":"post","link":"https:\/\/www.innovationm.com\/blog\/hoisting-in-javascript-variables-function\/","title":{"rendered":"HOISTING IN JAVASCRIPT (Variables &#038; Function)"},"content":{"rendered":"<p>A Person with another programming background is definitely confused with hoisting in Javascript. So let\u2019s deep dive into the hoisting in javascript<\/p>\n<ul>\n<li>The Javascript engine creates the global execution context when we execute a piece of Javascript code.<\/li>\n<li>Global Execution Context has two phases :<\/li>\n<\/ul>\n<p>(i) Creation Phase<\/p>\n<p>(ii) Execution Phase<\/p>\n<p><strong>Definition:<\/strong><\/p>\n<p>During the creation phase, the Javascript engine moves the variable and function declaration to the top of the code. <strong>This is called Hoisting in Javascript.<\/strong><\/p>\n<p><strong>There are two types of Hoisting in Javascript<\/strong><\/p>\n<p>(i) Variable Hoisting<\/p>\n<p>(ii) Function Hoisting<\/p>\n<p><strong>(i) Variable Hoisting : <\/strong><\/p>\n<p>In Variable Hoisting, the Javascript Code moves the variable declaration to the top of the code<\/p>\n<p><strong>Ex:<\/strong><\/p>\n<p><img decoding=\"async\" class=\"alignnone size-full wp-image-7432\" src=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2022\/10\/b1.png\" alt=\"\" width=\"238\" height=\"64\" \/><\/p>\n<p>Here in this example, you may be confused why the output is undefined instead of error because we access variable a. So here the hoisting comes into the picture. And now you will know what the meaning of the variable goes to the top of the scope.<\/p>\n<p><strong>After Hoisting the Code:<\/strong><\/p>\n<p><img decoding=\"async\" class=\"alignnone size-full wp-image-7433\" src=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2022\/10\/b2.png\" alt=\"\" width=\"253\" height=\"103\" \/><\/p>\n<p>So here the (var a) is hoisted to the top of the scope that is how the code runs behind the javascript. The variable (a) hoisted to the top of the scope and the javascript initialized this variable with undefined<\/p>\n<p><strong>(ii) Function Hoisting :<\/strong><\/p>\n<p>Like Variable function is also hoisted in javascript. Let\u2019s see how<\/p>\n<p><strong>Ex:\u00a0<\/strong><\/p>\n<p><strong>\u00a0Before Hoisting<\/strong>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <strong>After Hoisting<\/strong><\/p>\n<p><img fetchpriority=\"high\" decoding=\"async\" class=\"alignnone size-full wp-image-7434\" src=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2022\/10\/b3.png\" alt=\"\" width=\"239\" height=\"243\" srcset=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2022\/10\/b3.png 239w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2022\/10\/b3-24x24.png 24w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2022\/10\/b3-48x48.png 48w\" sizes=\"(max-width: 239px) 100vw, 239px\" \/>\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0<img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-7435\" src=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2022\/10\/b4.png\" alt=\"\" width=\"226\" height=\"241\" \/><\/p>\n<p>Here in the first image is how you write a code and in the second image how the code actually runs behind the javascript. Behind the javascript, the function add is hoisted to the top of the scope.<\/p>\n<p><strong>Function Statements are Hoisted, but Function Expressions are not :<\/strong><\/p>\n<p>Now you will be confused what is the difference b\/w function statement and function expression. So the above example is the function statement when we write a simple function and when we assign a process into a variable that is a function expression.<\/p>\n<p><strong>Ex:<\/strong><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-7436\" src=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2022\/10\/b5.png\" alt=\"\" width=\"228\" height=\"241\" srcset=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2022\/10\/b5.png 228w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2022\/10\/b5-24x24.png 24w\" sizes=\"(max-width: 228px) 100vw, 228px\" \/><\/p>\n<p>Here in this example, this program will show an error: add<strong> is not a function <\/strong>because here add acts as a variable and it will be hoisted to the top of the scope when the program comes to line no. 4 the program will throw an error.<\/p>\n<p><strong>Conclusion:<\/strong><\/p>\n<ul>\n<li>Hoisting is the Javascript default behavior of moving declaration to the top.<\/li>\n<li>Declare all of your variables to the top of the scope.<\/li>\n<li>Make sure all your functions are put at the top of the scope.<\/li>\n<\/ul>\n<p>I hope you enjoyed this article Hoisting in Javascript \ud83d\ude42<\/p>\n","protected":false},"excerpt":{"rendered":"<p>A Person with another programming background is definitely confused with hoisting in Javascript. So let\u2019s deep dive into the hoisting in javascript The Javascript engine creates the global execution context when we execute a piece of Javascript code. Global Execution Context has two phases : (i) Creation Phase (ii) Execution Phase Definition: During the creation [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":7437,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[120,256,360],"tags":[722,723,779,809,224,346,421],"class_list":["post-7431","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ext-js","category-java-application","category-javascript","tag-blog","tag-blogging","tag-hoisting","tag-hosting","tag-java","tag-javascript","tag-js"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>HOISTING IN JAVASCRIPT (Variables &amp; Function) - InnovationM - Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.innovationm.com\/blog\/hoisting-in-javascript-variables-function\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"HOISTING IN JAVASCRIPT (Variables &amp; Function) - InnovationM - Blog\" \/>\n<meta property=\"og:description\" content=\"A Person with another programming background is definitely confused with hoisting in Javascript. So let\u2019s deep dive into the hoisting in javascript The Javascript engine creates the global execution context when we execute a piece of Javascript code. Global Execution Context has two phases : (i) Creation Phase (ii) Execution Phase Definition: During the creation [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.innovationm.com\/blog\/hoisting-in-javascript-variables-function\/\" \/>\n<meta property=\"og:site_name\" content=\"InnovationM - Blog\" \/>\n<meta property=\"article:published_time\" content=\"2022-10-06T11:33:33+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2022\/10\/Hoisting-inJavascriptVariable-Function.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1689\" \/>\n\t<meta property=\"og:image:height\" content=\"950\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"InnovationM Admin\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"InnovationM Admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/hoisting-in-javascript-variables-function\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/hoisting-in-javascript-variables-function\\\/\"},\"author\":{\"name\":\"InnovationM Admin\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/#\\\/schema\\\/person\\\/a831bf4602d69d1fa452e3de0c8862ed\"},\"headline\":\"HOISTING IN JAVASCRIPT (Variables &#038; Function)\",\"datePublished\":\"2022-10-06T11:33:33+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/hoisting-in-javascript-variables-function\\\/\"},\"wordCount\":411,\"commentCount\":0,\"image\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/hoisting-in-javascript-variables-function\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/wp-content\\\/uploads\\\/2022\\\/10\\\/Hoisting-inJavascriptVariable-Function.png\",\"keywords\":[\"blog\",\"blogging\",\"hoisting\",\"hosting\",\"java\",\"JavaScript\",\"JS\"],\"articleSection\":[\"Ext JS\",\"Java Application\",\"JavaScript\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/hoisting-in-javascript-variables-function\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/hoisting-in-javascript-variables-function\\\/\",\"url\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/hoisting-in-javascript-variables-function\\\/\",\"name\":\"HOISTING IN JAVASCRIPT (Variables & Function) - InnovationM - Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/hoisting-in-javascript-variables-function\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/hoisting-in-javascript-variables-function\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/wp-content\\\/uploads\\\/2022\\\/10\\\/Hoisting-inJavascriptVariable-Function.png\",\"datePublished\":\"2022-10-06T11:33:33+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/#\\\/schema\\\/person\\\/a831bf4602d69d1fa452e3de0c8862ed\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/hoisting-in-javascript-variables-function\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/hoisting-in-javascript-variables-function\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/hoisting-in-javascript-variables-function\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/wp-content\\\/uploads\\\/2022\\\/10\\\/Hoisting-inJavascriptVariable-Function.png\",\"contentUrl\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/wp-content\\\/uploads\\\/2022\\\/10\\\/Hoisting-inJavascriptVariable-Function.png\",\"width\":1689,\"height\":950},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/hoisting-in-javascript-variables-function\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"HOISTING IN JAVASCRIPT (Variables &#038; Function)\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/\",\"name\":\"InnovationM - Blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/#\\\/schema\\\/person\\\/a831bf4602d69d1fa452e3de0c8862ed\",\"name\":\"InnovationM Admin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5c99d9eece9dfbc82297cf34ddd58e9fe05bb52fe66c8f6bf6c0a45bfb6d7629?s=96&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5c99d9eece9dfbc82297cf34ddd58e9fe05bb52fe66c8f6bf6c0a45bfb6d7629?s=96&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5c99d9eece9dfbc82297cf34ddd58e9fe05bb52fe66c8f6bf6c0a45bfb6d7629?s=96&r=g\",\"caption\":\"InnovationM Admin\"},\"sameAs\":[\"http:\\\/\\\/www.innovationm.com\\\/\"],\"url\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/author\\\/innovationmadmin\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"HOISTING IN JAVASCRIPT (Variables & Function) - InnovationM - Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.innovationm.com\/blog\/hoisting-in-javascript-variables-function\/","og_locale":"en_US","og_type":"article","og_title":"HOISTING IN JAVASCRIPT (Variables & Function) - InnovationM - Blog","og_description":"A Person with another programming background is definitely confused with hoisting in Javascript. So let\u2019s deep dive into the hoisting in javascript The Javascript engine creates the global execution context when we execute a piece of Javascript code. Global Execution Context has two phases : (i) Creation Phase (ii) Execution Phase Definition: During the creation [&hellip;]","og_url":"https:\/\/www.innovationm.com\/blog\/hoisting-in-javascript-variables-function\/","og_site_name":"InnovationM - Blog","article_published_time":"2022-10-06T11:33:33+00:00","og_image":[{"width":1689,"height":950,"url":"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2022\/10\/Hoisting-inJavascriptVariable-Function.png","type":"image\/png"}],"author":"InnovationM Admin","twitter_misc":{"Written by":"InnovationM Admin","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.innovationm.com\/blog\/hoisting-in-javascript-variables-function\/#article","isPartOf":{"@id":"https:\/\/www.innovationm.com\/blog\/hoisting-in-javascript-variables-function\/"},"author":{"name":"InnovationM Admin","@id":"https:\/\/www.innovationm.com\/blog\/#\/schema\/person\/a831bf4602d69d1fa452e3de0c8862ed"},"headline":"HOISTING IN JAVASCRIPT (Variables &#038; Function)","datePublished":"2022-10-06T11:33:33+00:00","mainEntityOfPage":{"@id":"https:\/\/www.innovationm.com\/blog\/hoisting-in-javascript-variables-function\/"},"wordCount":411,"commentCount":0,"image":{"@id":"https:\/\/www.innovationm.com\/blog\/hoisting-in-javascript-variables-function\/#primaryimage"},"thumbnailUrl":"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2022\/10\/Hoisting-inJavascriptVariable-Function.png","keywords":["blog","blogging","hoisting","hosting","java","JavaScript","JS"],"articleSection":["Ext JS","Java Application","JavaScript"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.innovationm.com\/blog\/hoisting-in-javascript-variables-function\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.innovationm.com\/blog\/hoisting-in-javascript-variables-function\/","url":"https:\/\/www.innovationm.com\/blog\/hoisting-in-javascript-variables-function\/","name":"HOISTING IN JAVASCRIPT (Variables & Function) - InnovationM - Blog","isPartOf":{"@id":"https:\/\/www.innovationm.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.innovationm.com\/blog\/hoisting-in-javascript-variables-function\/#primaryimage"},"image":{"@id":"https:\/\/www.innovationm.com\/blog\/hoisting-in-javascript-variables-function\/#primaryimage"},"thumbnailUrl":"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2022\/10\/Hoisting-inJavascriptVariable-Function.png","datePublished":"2022-10-06T11:33:33+00:00","author":{"@id":"https:\/\/www.innovationm.com\/blog\/#\/schema\/person\/a831bf4602d69d1fa452e3de0c8862ed"},"breadcrumb":{"@id":"https:\/\/www.innovationm.com\/blog\/hoisting-in-javascript-variables-function\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.innovationm.com\/blog\/hoisting-in-javascript-variables-function\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.innovationm.com\/blog\/hoisting-in-javascript-variables-function\/#primaryimage","url":"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2022\/10\/Hoisting-inJavascriptVariable-Function.png","contentUrl":"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2022\/10\/Hoisting-inJavascriptVariable-Function.png","width":1689,"height":950},{"@type":"BreadcrumbList","@id":"https:\/\/www.innovationm.com\/blog\/hoisting-in-javascript-variables-function\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.innovationm.com\/blog\/"},{"@type":"ListItem","position":2,"name":"HOISTING IN JAVASCRIPT (Variables &#038; Function)"}]},{"@type":"WebSite","@id":"https:\/\/www.innovationm.com\/blog\/#website","url":"https:\/\/www.innovationm.com\/blog\/","name":"InnovationM - Blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.innovationm.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.innovationm.com\/blog\/#\/schema\/person\/a831bf4602d69d1fa452e3de0c8862ed","name":"InnovationM Admin","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/5c99d9eece9dfbc82297cf34ddd58e9fe05bb52fe66c8f6bf6c0a45bfb6d7629?s=96&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/5c99d9eece9dfbc82297cf34ddd58e9fe05bb52fe66c8f6bf6c0a45bfb6d7629?s=96&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/5c99d9eece9dfbc82297cf34ddd58e9fe05bb52fe66c8f6bf6c0a45bfb6d7629?s=96&r=g","caption":"InnovationM Admin"},"sameAs":["http:\/\/www.innovationm.com\/"],"url":"https:\/\/www.innovationm.com\/blog\/author\/innovationmadmin\/"}]}},"_links":{"self":[{"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/posts\/7431","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/comments?post=7431"}],"version-history":[{"count":0,"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/posts\/7431\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/media\/7437"}],"wp:attachment":[{"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/media?parent=7431"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/categories?post=7431"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/tags?post=7431"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}