{"id":2387,"date":"2024-08-29T13:06:01","date_gmt":"2024-08-29T12:06:01","guid":{"rendered":"https:\/\/codeflarelimited.com\/blog\/?p=2387"},"modified":"2024-08-29T16:17:40","modified_gmt":"2024-08-29T15:17:40","slug":"javascript-symbols","status":"publish","type":"post","link":"https:\/\/codeflarelimited.com\/blog\/javascript-symbols\/","title":{"rendered":"Understanding JavaScript Symbols"},"content":{"rendered":"\n<p>JavaScript, as a programming language, is continuously evolving. With each update, new features are introduced that enhance the language\u2019s capabilities, allowing developers to write more efficient and maintainable code. One such feature that was introduced in ECMAScript 2015 (ES6) is the <strong>Symbol<\/strong> data type. Though it may not be as commonly used as strings or numbers, understanding Symbols is essential for leveraging the full potential of JavaScript.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>What are Symbols?<\/strong><\/h3>\n\n\n\n<p>A Symbol is a unique and immutable primitive value that is used as the key of an object property. Unlike strings or numbers, every Symbol is unique, even if two Symbols have the same description. This uniqueness is what makes Symbols a powerful tool in JavaScript, especially when it comes to preventing property name collisions in objects.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Creating a Symbol<\/h4>\n\n\n\n<p>You can create a Symbol by calling the <code>Symbol()<\/code> function:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"javascript\" class=\"language-javascript\">const sym1 = Symbol();\nconst sym2 = Symbol();\nconsole.log(sym1 === sym2); \/\/ false\n<\/code><\/pre>\n\n\n\n<p>In the example above, <code>sym1<\/code> and <code>sym2<\/code> are two different Symbols, even though they were created in the same way. They are unique and do not equal each other.<\/p>\n\n\n\n<p>You can also pass an optional description (a string) to the <code>Symbol()<\/code> function, which is useful for debugging:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"javascript\" class=\"language-javascript\">const sym3 = Symbol('description');\nconsole.log(sym3); \/\/ Symbol(description)\n<\/code><\/pre>\n\n\n\n<p>The description is not the identifier of the Symbol but rather a label that helps in debugging.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Why Use Symbols?<\/strong><\/h3>\n\n\n\n<p>Symbols are particularly useful in scenarios where you need to ensure that an object\u2019s property is unique and cannot be accidentally overridden or accessed. Here are some common use cases:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Avoiding Property Name Collisions<\/strong>: Symbols can be used to create properties on objects without worrying about name conflicts:<\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"javascript\" class=\"language-javascript\">const symKey = Symbol('key');\nconst obj = {\n    [symKey]: 'value'\n};\nconsole.log(obj[symKey]); \/\/ 'value'\n<\/code><\/pre>\n\n\n\n<p>In this example, the <code>symKey<\/code> is unique and ensures that no other property can overwrite it.<\/p>\n\n\n\n<p>2. <strong>Implementing Hidden Object Properties<\/strong>: Symbols can be used to create properties that are not easily accessible or enumerable:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"javascript\" class=\"language-javascript\">const hiddenKey = Symbol('hidden');\nconst myObject = {\n    visible: 'I can be seen',\n    [hiddenKey]: 'You cannot see me'\n};\n\nfor (let key in myObject) {\n    console.log(key); \/\/ logs only 'visible'\n}\n\nconsole.log(Object.keys(myObject)); \/\/ ['visible']\nconsole.log(Object.getOwnPropertyNames(myObject)); \/\/ ['visible']\nconsole.log(Object.getOwnPropertySymbols(myObject)); \/\/ [Symbol(hidden)]\n<\/code><\/pre>\n\n\n\n<p>The <code>hiddenKey<\/code> Symbol is not included in loops or methods that return the object&#8217;s keys, making it effectively hidden from the usual object introspection methods.<\/p>\n\n\n\n<p>3. <strong>Defining Constants<\/strong>: Since Symbols are unique and immutable, they make excellent constants:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"javascript\" class=\"language-javascript\">const COLOR_RED = Symbol('red');\nconst COLOR_GREEN = Symbol('green');\n\nfunction getColorName(color) {\n    switch(color) {\n        case COLOR_RED:\n            return 'Red';\n        case COLOR_GREEN:\n            return 'Green';\n        default:\n            return 'Unknown color';\n    }\n}\n<\/code><\/pre>\n\n\n\n<p>4. <strong>Using Well-Known Symbols<\/strong>: JavaScript has several built-in, well-known Symbols that change the behavior of objects and functions. For example:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>Symbol.iterator<\/code>: Allows an object to be iterable.<\/li>\n\n\n\n<li><code>Symbol.toStringTag<\/code>: Customizes the default string description of an object.<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"javascript\" class=\"language-javascript\">const myArray = [1, 2, 3];\nconst iterator = myArray[Symbol.iterator]();\nconsole.log(iterator.next().value); \/\/ 1\n\nconst customObj = {\n    [Symbol.toStringTag]: 'CustomObject'\n};\nconsole.log(customObj.toString()); \/\/ [object CustomObject]\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Symbols in Practice<\/strong><\/h3>\n\n\n\n<p>Symbols might seem abstract at first, but they provide a level of abstraction and safety that is invaluable in complex applications, libraries, or frameworks. When you\u2019re working on a project that involves multiple teams or third-party integrations, Symbols can help ensure that your object properties remain distinct and free from naming conflicts.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Conclusion<\/strong><\/h3>\n\n\n\n<p>Understanding and using Symbols can elevate your JavaScript code by providing unique, non-colliding property keys and offering mechanisms for implementing hidden or constant properties. While they might not be needed in every project, when the need arises, Symbols can be an incredibly powerful tool in your JavaScript toolkit.<\/p>\n\n\n\n<p><a href=\"https:\/\/codeflarelimited.com\/blog\/immutable-data-structures\/\">Working with Immutable Data structures in JavaScript<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>JavaScript, as a programming language, is continuously evolving. With each update, new features are introduced that enhance the<\/p>\n","protected":false},"author":3,"featured_media":2407,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[11],"tags":[99],"class_list":["post-2387","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-javascript","tag-software-development"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>JavaScript Symbols<\/title>\n<meta name=\"description\" content=\"Learn how JavaScript Symbols offer unique and immutable property keys, helping you avoid name collisions and enhance your code&#039;s reliability.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/codeflarelimited.com\/blog\/javascript-symbols\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"JavaScript Symbols\" \/>\n<meta property=\"og:description\" content=\"Learn how JavaScript Symbols offer unique and immutable property keys, helping you avoid name collisions and enhance your code&#039;s reliability.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/codeflarelimited.com\/blog\/javascript-symbols\/\" \/>\n<meta property=\"article:published_time\" content=\"2024-08-29T12:06:01+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-08-29T15:17:40+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/codeflarelimited.com\/blog\/wp-content\/uploads\/2024\/08\/IMG-20240829-WA0008.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1120\" \/>\n\t<meta property=\"og:image:height\" content=\"630\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Kene Samuel\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"TechArticle\",\"@id\":\"https:\\\/\\\/codeflarelimited.com\\\/blog\\\/javascript-symbols\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/codeflarelimited.com\\\/blog\\\/javascript-symbols\\\/\"},\"author\":{\"name\":\"Kene Samuel\",\"@id\":\"https:\\\/\\\/codeflarelimited.com\\\/blog\\\/#\\\/schema\\\/person\\\/c501609bab46c16807eb32106074f206\"},\"headline\":\"Understanding JavaScript Symbols\",\"datePublished\":\"2024-08-29T12:06:01+00:00\",\"dateModified\":\"2024-08-29T15:17:40+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/codeflarelimited.com\\\/blog\\\/javascript-symbols\\\/\"},\"wordCount\":469,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/codeflarelimited.com\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/codeflarelimited.com\\\/blog\\\/javascript-symbols\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/codeflarelimited.com\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/08\\\/IMG-20240829-WA0008.jpg\",\"keywords\":[\"software development\"],\"articleSection\":[\"javascript\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/codeflarelimited.com\\\/blog\\\/javascript-symbols\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/codeflarelimited.com\\\/blog\\\/javascript-symbols\\\/\",\"url\":\"https:\\\/\\\/codeflarelimited.com\\\/blog\\\/javascript-symbols\\\/\",\"name\":\"JavaScript Symbols\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/codeflarelimited.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/codeflarelimited.com\\\/blog\\\/javascript-symbols\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/codeflarelimited.com\\\/blog\\\/javascript-symbols\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/codeflarelimited.com\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/08\\\/IMG-20240829-WA0008.jpg\",\"datePublished\":\"2024-08-29T12:06:01+00:00\",\"dateModified\":\"2024-08-29T15:17:40+00:00\",\"description\":\"Learn how JavaScript Symbols offer unique and immutable property keys, helping you avoid name collisions and enhance your code's reliability.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/codeflarelimited.com\\\/blog\\\/javascript-symbols\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/codeflarelimited.com\\\/blog\\\/javascript-symbols\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/codeflarelimited.com\\\/blog\\\/javascript-symbols\\\/#primaryimage\",\"url\":\"https:\\\/\\\/codeflarelimited.com\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/08\\\/IMG-20240829-WA0008.jpg\",\"contentUrl\":\"https:\\\/\\\/codeflarelimited.com\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/08\\\/IMG-20240829-WA0008.jpg\",\"width\":1120,\"height\":630},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/codeflarelimited.com\\\/blog\\\/javascript-symbols\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/codeflarelimited.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"javascript\",\"item\":\"https:\\\/\\\/codeflarelimited.com\\\/blog\\\/javascript\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Understanding JavaScript Symbols\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/codeflarelimited.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/codeflarelimited.com\\\/blog\\\/\",\"name\":\"\",\"description\":\"Sustainable solutions\",\"publisher\":{\"@id\":\"https:\\\/\\\/codeflarelimited.com\\\/blog\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/codeflarelimited.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/codeflarelimited.com\\\/blog\\\/#organization\",\"name\":\"Codeflare Limited\",\"url\":\"https:\\\/\\\/codeflarelimited.com\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/codeflarelimited.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/codeflarelimited.com\\\/blog\\\/wp-content\\\/uploads\\\/2020\\\/11\\\/codeflare.png\",\"contentUrl\":\"https:\\\/\\\/codeflarelimited.com\\\/blog\\\/wp-content\\\/uploads\\\/2020\\\/11\\\/codeflare.png\",\"width\":1040,\"height\":263,\"caption\":\"Codeflare Limited\"},\"image\":{\"@id\":\"https:\\\/\\\/codeflarelimited.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/codeflarelimited.com\\\/blog\\\/#\\\/schema\\\/person\\\/c501609bab46c16807eb32106074f206\",\"name\":\"Kene Samuel\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3e1716cd715a5b5491e1f2da373b52f2f73aeb37d268baff34719116e386d848?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3e1716cd715a5b5491e1f2da373b52f2f73aeb37d268baff34719116e386d848?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3e1716cd715a5b5491e1f2da373b52f2f73aeb37d268baff34719116e386d848?s=96&d=mm&r=g\",\"caption\":\"Kene Samuel\"},\"url\":\"https:\\\/\\\/codeflarelimited.com\\\/blog\\\/author\\\/kene\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"JavaScript Symbols","description":"Learn how JavaScript Symbols offer unique and immutable property keys, helping you avoid name collisions and enhance your code's reliability.","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:\/\/codeflarelimited.com\/blog\/javascript-symbols\/","og_locale":"en_US","og_type":"article","og_title":"JavaScript Symbols","og_description":"Learn how JavaScript Symbols offer unique and immutable property keys, helping you avoid name collisions and enhance your code's reliability.","og_url":"https:\/\/codeflarelimited.com\/blog\/javascript-symbols\/","article_published_time":"2024-08-29T12:06:01+00:00","article_modified_time":"2024-08-29T15:17:40+00:00","og_image":[{"width":1120,"height":630,"url":"https:\/\/codeflarelimited.com\/blog\/wp-content\/uploads\/2024\/08\/IMG-20240829-WA0008.jpg","type":"image\/jpeg"}],"author":"Kene Samuel","twitter_card":"summary_large_image","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"TechArticle","@id":"https:\/\/codeflarelimited.com\/blog\/javascript-symbols\/#article","isPartOf":{"@id":"https:\/\/codeflarelimited.com\/blog\/javascript-symbols\/"},"author":{"name":"Kene Samuel","@id":"https:\/\/codeflarelimited.com\/blog\/#\/schema\/person\/c501609bab46c16807eb32106074f206"},"headline":"Understanding JavaScript Symbols","datePublished":"2024-08-29T12:06:01+00:00","dateModified":"2024-08-29T15:17:40+00:00","mainEntityOfPage":{"@id":"https:\/\/codeflarelimited.com\/blog\/javascript-symbols\/"},"wordCount":469,"commentCount":0,"publisher":{"@id":"https:\/\/codeflarelimited.com\/blog\/#organization"},"image":{"@id":"https:\/\/codeflarelimited.com\/blog\/javascript-symbols\/#primaryimage"},"thumbnailUrl":"https:\/\/codeflarelimited.com\/blog\/wp-content\/uploads\/2024\/08\/IMG-20240829-WA0008.jpg","keywords":["software development"],"articleSection":["javascript"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/codeflarelimited.com\/blog\/javascript-symbols\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/codeflarelimited.com\/blog\/javascript-symbols\/","url":"https:\/\/codeflarelimited.com\/blog\/javascript-symbols\/","name":"JavaScript Symbols","isPartOf":{"@id":"https:\/\/codeflarelimited.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/codeflarelimited.com\/blog\/javascript-symbols\/#primaryimage"},"image":{"@id":"https:\/\/codeflarelimited.com\/blog\/javascript-symbols\/#primaryimage"},"thumbnailUrl":"https:\/\/codeflarelimited.com\/blog\/wp-content\/uploads\/2024\/08\/IMG-20240829-WA0008.jpg","datePublished":"2024-08-29T12:06:01+00:00","dateModified":"2024-08-29T15:17:40+00:00","description":"Learn how JavaScript Symbols offer unique and immutable property keys, helping you avoid name collisions and enhance your code's reliability.","breadcrumb":{"@id":"https:\/\/codeflarelimited.com\/blog\/javascript-symbols\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/codeflarelimited.com\/blog\/javascript-symbols\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/codeflarelimited.com\/blog\/javascript-symbols\/#primaryimage","url":"https:\/\/codeflarelimited.com\/blog\/wp-content\/uploads\/2024\/08\/IMG-20240829-WA0008.jpg","contentUrl":"https:\/\/codeflarelimited.com\/blog\/wp-content\/uploads\/2024\/08\/IMG-20240829-WA0008.jpg","width":1120,"height":630},{"@type":"BreadcrumbList","@id":"https:\/\/codeflarelimited.com\/blog\/javascript-symbols\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/codeflarelimited.com\/blog\/"},{"@type":"ListItem","position":2,"name":"javascript","item":"https:\/\/codeflarelimited.com\/blog\/javascript\/"},{"@type":"ListItem","position":3,"name":"Understanding JavaScript Symbols"}]},{"@type":"WebSite","@id":"https:\/\/codeflarelimited.com\/blog\/#website","url":"https:\/\/codeflarelimited.com\/blog\/","name":"","description":"Sustainable solutions","publisher":{"@id":"https:\/\/codeflarelimited.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/codeflarelimited.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/codeflarelimited.com\/blog\/#organization","name":"Codeflare Limited","url":"https:\/\/codeflarelimited.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/codeflarelimited.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/codeflarelimited.com\/blog\/wp-content\/uploads\/2020\/11\/codeflare.png","contentUrl":"https:\/\/codeflarelimited.com\/blog\/wp-content\/uploads\/2020\/11\/codeflare.png","width":1040,"height":263,"caption":"Codeflare Limited"},"image":{"@id":"https:\/\/codeflarelimited.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/codeflarelimited.com\/blog\/#\/schema\/person\/c501609bab46c16807eb32106074f206","name":"Kene Samuel","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/3e1716cd715a5b5491e1f2da373b52f2f73aeb37d268baff34719116e386d848?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/3e1716cd715a5b5491e1f2da373b52f2f73aeb37d268baff34719116e386d848?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/3e1716cd715a5b5491e1f2da373b52f2f73aeb37d268baff34719116e386d848?s=96&d=mm&r=g","caption":"Kene Samuel"},"url":"https:\/\/codeflarelimited.com\/blog\/author\/kene\/"}]}},"jetpack_featured_media_url":"https:\/\/codeflarelimited.com\/blog\/wp-content\/uploads\/2024\/08\/IMG-20240829-WA0008.jpg","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/codeflarelimited.com\/blog\/wp-json\/wp\/v2\/posts\/2387","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/codeflarelimited.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/codeflarelimited.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/codeflarelimited.com\/blog\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/codeflarelimited.com\/blog\/wp-json\/wp\/v2\/comments?post=2387"}],"version-history":[{"count":1,"href":"https:\/\/codeflarelimited.com\/blog\/wp-json\/wp\/v2\/posts\/2387\/revisions"}],"predecessor-version":[{"id":2388,"href":"https:\/\/codeflarelimited.com\/blog\/wp-json\/wp\/v2\/posts\/2387\/revisions\/2388"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/codeflarelimited.com\/blog\/wp-json\/wp\/v2\/media\/2407"}],"wp:attachment":[{"href":"https:\/\/codeflarelimited.com\/blog\/wp-json\/wp\/v2\/media?parent=2387"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/codeflarelimited.com\/blog\/wp-json\/wp\/v2\/categories?post=2387"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/codeflarelimited.com\/blog\/wp-json\/wp\/v2\/tags?post=2387"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}