{"id":114,"date":"2020-02-10T10:25:00","date_gmt":"2020-02-10T09:25:00","guid":{"rendered":"https:\/\/www.codemotion.com\/magazine\/douglas-crockford-presents-his-new-book-how-javascript-works\/"},"modified":"2021-12-23T15:29:36","modified_gmt":"2021-12-23T14:29:36","slug":"douglas-crockford-presents-his-new-book-how-javascript-works","status":"publish","type":"post","link":"https:\/\/www.codemotion.com\/magazine\/frontend\/javascript\/douglas-crockford-presents-his-new-book-how-javascript-works\/","title":{"rendered":"Douglas Crockford and his book \u201cHow JavaScript works\u201d"},"content":{"rendered":"\t\t\t\t<div class=\"wp-block-uagb-table-of-contents uagb-toc__align-left uagb-toc__columns-1  uagb-block-4e890a0e-f9bb-4364-a80e-545983768bf9      \"\n\t\t\t\t\tdata-scroll= \"1\"\n\t\t\t\t\tdata-offset= \"30\"\n\t\t\t\t\tstyle=\"\"\n\t\t\t\t>\n\t\t\t\t<div class=\"uagb-toc__wrap\">\n\t\t\t\t\t\t<div class=\"uagb-toc__title\">\n\t\t\t\t\t\t\tTable Of Contents\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"uagb-toc__list-wrap \">\n\t\t\t\t\t\t<ol class=\"uagb-toc__list\"><li class=\"uagb-toc__list\"><a href=\"#who-is-douglas-crockford\" class=\"uagb-toc-link__trigger\">Who is Douglas Crockford<\/a><li class=\"uagb-toc__list\"><a href=\"#chapter-2-how-numbers-work\" class=\"uagb-toc-link__trigger\">Chapter 2: How Numbers Work<\/a><li class=\"uagb-toc__list\"><a href=\"#chapter-24-how-optimisation-works\" class=\"uagb-toc-link__trigger\">Chapter 24: How Optimisation Works<\/a><\/ol>\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\n\n\n<p>More than ten years have passed since <strong><span id=\"urn:enhancement-98b4f9ef\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/douglas_crockford\">Douglas Crockford<\/span><\/strong> released his first book about <span id=\"urn:enhancement-ed4c7025\" class=\"textannotation disambiguated wl-creative-work\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/javascript\">JavaScript<\/span>. It\u2019s now time to embrace a new one. It&#8217;s supposed to shed a light on different aspects of the language, point out the problems and discover possible solutions.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Who is Douglas Crockford<\/h2>\n\n\n\n<p>If you\u2019ve been in the <span id=\"urn:enhancement-5eea439f\" class=\"textannotation disambiguated wl-creative-work\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/javascript\">JavaScript<\/span> world for a while, you must know <a rel=\"noopener noreferrer\" href=\"https:\/\/events.codemotion.com\/conferences\/amsterdam\/2019\/speaker\/3953\/\" target=\"_blank\" class=\"ek-link\">Douglas Crockford<\/a>. At least you most probably have seen his name in some programming book or an article. He is one of the <span id=\"urn:enhancement-97b2e9c0\" class=\"textannotation disambiguated wl-creative-work\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/javascript\">JavaScript<\/span> pioneers, who wrote thousands of lines of production code when we all still kids. He is an active contributor to <span id=\"urn:enhancement-d09b5768\" class=\"textannotation disambiguated wl-creative-work\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/javascript\">JavaScript<\/span> standards, <span id=\"urn:enhancement-f0714618\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/tool\">tools<\/span> and related web technologies, as well as an author of <span id=\"urn:enhancement-f34fd376\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/json\">JSON<\/span> format.<\/p>\n\n\n\n<p>Back in 2008, <span id=\"urn:enhancement-46b7f5a3\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/douglas_crockford\">Douglas Crockford<\/span> wrote a book called \u201c<a href=\"https:\/\/www.codemotion.com\/magazine\/dev-hub\/web-developer\/douglas-crockford-the-good-part-of-javascript\/\" class=\"ek-link\"><span id=\"urn:enhancement-c7e98324\" class=\"textannotation disambiguated wl-creative-work\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/javascript\">JavaScript<\/span>: The Good Parts<\/a>\u201d, which became quite popular among web <span id=\"urn:enhancement-fec94c2d\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/software_developer\">developers<\/span>. But time goes fast and especially in the frontend world &#8211; it\u2019s flying with the speed of sound. After about 10 years, another book by this author has recently been released. It\u2019s called \u201c<strong>How <span id=\"urn:enhancement-ade1a1ff\" class=\"textannotation disambiguated wl-creative-work\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/javascript\">JavaScript<\/span> works<\/strong>\u201d.<\/p>\n\n\n\n<p>I was lucky to attend the talk by Mr Crockford at <a href=\"https:\/\/events.codemotion.com\/conferences\/amsterdam\/2019\/\" target=\"_blank\" rel=\"noopener noreferrer\">Codemotion Amsterdam 2019<\/a>, where he presented his new book to the web community. The talk was in a format I\u2019ve never seen before: the speaker was literally reading his book to the audience. He prepared a few interesting slides and the talk mostly consisted of two chapters of the book, mixed with Q&amp;A sessions.<\/p>\n\n\n\n<p>The fun fact is that the book\u2019s chapters and pages start with the number zero and it took some effort to manage this with a publishing company. As the author says: \u201cThe book is written by a <span id=\"urn:enhancement-b0d7407c\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/programmer\">programmer<\/span> for <span id=\"urn:enhancement-5d8c99b7\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/programmer\">programmers<\/span>\u201d. You can clearly see the chapters list is formatted in our lovely <span id=\"urn:enhancement-78bacc42\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/json\">JSON<\/span>:<\/p>\n\n\n\n<script src=\"https:\/\/pastebin.com\/embed_js\/bEH6Z0v8\"><\/script>\n\n\n\n<h2 class=\"wp-block-heading\">Chapter 2: How Numbers Work<\/h2>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/05\/how_javascript_works__1.jpg\" alt=\"\" class=\"wp-image-2474\"\/><\/figure><\/div>\n\n\n\n<p>After a short introduction, the author started with the third chapter, which, as you remember, is numbered as 2 (two). The chapter is called \u201cHow Numbers Work\u201d and is fully dedicated to the different types of numbers and how <span id=\"urn:enhancement-54486e96\" class=\"textannotation disambiguated wl-creative-work\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/javascript\">JavaScript<\/span> handles them.<br>When web <span id=\"urn:enhancement-d58290ad\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/software_developer\">developers<\/span> start talking about numbers and caveats around them, there is one example which normally pops up in their minds:<\/p>\n\n\n\n<script src=\"https:\/\/pastebin.com\/embed_js\/99URErFp\"><\/script>\n\n\n\n<p>The problem here is not with <span id=\"urn:enhancement-e28bf129\" class=\"textannotation disambiguated wl-creative-work\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/javascript\">JavaScript<\/span> itself, but how computers deal with floating numbers in general. Internally, they use a binary format which can not represent floating numbers accurately. That\u2019s why this problem exists in almost every <span id=\"urn:enhancement-a5464230\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/programming_languages\">programming language<\/span>.<\/p>\n\n\n\n<p>Chapter 2 is supposed to shed a light on the fundamental things related to numbers and remind us how extremely important it is to understand how numbers work under the hood. <span id=\"urn:enhancement-330ae714\" class=\"textannotation disambiguated wl-creative-work\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/javascript\">JavaScript<\/span> handles floating point numbers according to <strong><span id=\"urn:enhancement-89b483e5\" class=\"textannotation disambiguated wl-organization\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/institute_of_electrical_and_electronics_engineers\">IEEE<\/span> Standard for Floating-Point Arithmetic (<span id=\"urn:enhancement-a95a8961\" class=\"textannotation disambiguated wl-organization\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/institute_of_electrical_and_electronics_engineers\">IEEE<\/span> 754)<\/strong> <span id=\"urn:enhancement-a9c8ec4e\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/standardization\">standard<\/span>, where any number stored in computer\u2019s memory is a combination of three different parts: <strong>sign, <span id=\"urn:enhancement-13d3ab6b\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/significand\">significand<\/span> (also called \u201c<span id=\"urn:enhancement-389267db\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/significand\">mantissa<\/span>\u201d) and exponent<\/strong>. In general, the <span id=\"urn:enhancement-b56f09f1\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/standardization\">standard<\/span> \u201c<span id=\"urn:enhancement-cc8540d9\" class=\"textannotation disambiguated wl-organization\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/institute_of_electrical_and_electronics_engineers\">IEEE<\/span> 754\u201d defines two formats: single and double precisions:<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/05\/Screen-Shot-2019-05-21-at-14.02.10.png\" alt=\"\" class=\"wp-image-2474\"\/><\/figure><\/div>\n\n\n\n<p><strong><span id=\"urn:enhancement-80ab8df9\" class=\"textannotation disambiguated wl-creative-work\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/javascript\">JavaScript<\/span> uses the double precision format only<\/strong> though. So that means every instance of Number uses <span id=\"urn:enhancement-77e35cf8\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/64-bit_computing\">64 bits<\/span> of memory.<\/p>\n\n\n\n<p>According to the table, the <span id=\"urn:enhancement-eb32d539\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/significand\">significand<\/span> part is limited by 52 bits and, in case it exceeds this number, the rest simply get cut off. Here is the root cause of the problem with floating numbers.<\/p>\n\n\n\n<p>It\u2019s just one thing among all possible issues when you work with numbers. Chapter 2 of the book should help us understand better potential problems and find solutions to solve them.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Chapter 24: How Optimisation Works<\/h2>\n\n\n\n<p>When Mr Crockford finished answering all the questions related to the third chapter, he switched to chapter 24 (twenty-four) and read some excerpts from it. In this chapter, he shows some good practices of writing a \u201cfast\u201d code and shares some bad examples of code we should avoid.<\/p>\n\n\n\n<p>When we start optimising our code or <span id=\"urn:enhancement-545e75fb\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/application_software\">application<\/span>, the first thing we have to do is to find the root cause of our problem. Or, in case we want to <a href=\"https:\/\/www.codemotion.com\/magazine\/dev-hub\/web-developer\/javascript-speed-up-tips\/\" target=\"_blank\" rel=\"noopener\">increase the speed<\/a>, we need to determine a bottleneck &#8211; the place which slows down the application and can be improved. Once we know what exactly we want to optimise, it\u2019s much easier to find the right solution.<\/p>\n\n\n\n<p>Another very important thing here is measurement. How do we know if our next update\/release\/hotfix will improve the current <span id=\"urn:enhancement-fc97ccd9\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/implementation\">implementation<\/span>? We need to measure the <span id=\"urn:enhancement-78db7fc7\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/performance\">performance<\/span> correctly and do it before and after our changes. The measurement here is a key! Only if we compare measurement results of before and after state we can be sure that we\u2019re really optimising our <span id=\"urn:enhancement-ac8fa86b\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/application_software\">application<\/span> and not making it worse.<\/p>\n\n\n\n<p>After the presentation, I felt like I wanted to buy the book. Mr Crockford is an extremely experienced <span id=\"urn:enhancement-b75ad0bb\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/programmer\">programmer<\/span>, his new book seems to touch upon serious questions and deeply analyse them. It looks very promising and I am, as a <span id=\"urn:enhancement-fdc81f20\" class=\"textannotation disambiguated wl-creative-work\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/javascript\">JavaScript<\/span> <span id=\"urn:enhancement-e85a3210\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/software_developer\">developer<\/span>, planning to read all the chapters.<\/p>\n\n\n","protected":false},"excerpt":{"rendered":"<p>Back in 2008, Douglas Crockford wrote a book called \u201cJavaScript: The Good Parts\u201d, which became quite popular among web developers. But time goes fast and especially in the frontend world &#8211; it\u2019s flying with the speed of sound. After about 10 years, another book by this author has recently been released. It\u2019s called \u201cHow JavaScript works\u201d.<\/p>\n","protected":false},"author":6,"featured_media":115,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_editorskit_title_hidden":false,"_editorskit_reading_time":3,"_editorskit_is_block_options_detached":false,"_editorskit_block_options_position":"{}","_uag_custom_page_level_css":"","_genesis_hide_title":false,"_genesis_hide_breadcrumbs":false,"_genesis_hide_singular_image":false,"_genesis_hide_footer_widgets":false,"_genesis_custom_body_class":"","_genesis_custom_post_class":"","_genesis_layout":"","footnotes":""},"categories":[8],"tags":[77],"collections":[],"class_list":{"0":"post-114","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-javascript","8":"tag-codemotion-amsterdam","9":"entry"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.9 (Yoast SEO v26.9) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Douglas Crockford and his book \u201cHow JavaScript works\u201d - Codemotion<\/title>\n<meta name=\"description\" content=\"After about 10 years from his first book called \u201cJavaScript: The Good Parts\u201d, Douglas Crockford has recently released a new one: \u201cHow JavaScript works\u201d.\" \/>\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.codemotion.com\/magazine\/frontend\/javascript\/douglas-crockford-presents-his-new-book-how-javascript-works\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Douglas Crockford and his book \u201cHow JavaScript works\u201d\" \/>\n<meta property=\"og:description\" content=\"After about 10 years from his first book called \u201cJavaScript: The Good Parts\u201d, Douglas Crockford has recently released a new one: \u201cHow JavaScript works\u201d.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.codemotion.com\/magazine\/frontend\/javascript\/douglas-crockford-presents-his-new-book-how-javascript-works\/\" \/>\n<meta property=\"og:site_name\" content=\"Codemotion Magazine\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/Codemotion.Italy\/\" \/>\n<meta property=\"article:published_time\" content=\"2020-02-10T09:25:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-12-23T14:29:36+00:00\" \/>\n<meta name=\"author\" content=\"Yuri Drabik\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/05\/Douglas-Crockford.jpg\" \/>\n<meta name=\"twitter:creator\" content=\"@CodemotionIT\" \/>\n<meta name=\"twitter:site\" content=\"@CodemotionIT\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Yuri Drabik\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/frontend\/javascript\/douglas-crockford-presents-his-new-book-how-javascript-works\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/frontend\/javascript\/douglas-crockford-presents-his-new-book-how-javascript-works\/\"},\"author\":{\"name\":\"Yuri Drabik\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/ff02597ce9f05cd23208147d723ff906\"},\"headline\":\"Douglas Crockford and his book \u201cHow JavaScript works\u201d\",\"datePublished\":\"2020-02-10T09:25:00+00:00\",\"dateModified\":\"2021-12-23T14:29:36+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/frontend\/javascript\/douglas-crockford-presents-his-new-book-how-javascript-works\/\"},\"wordCount\":831,\"publisher\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/frontend\/javascript\/douglas-crockford-presents-his-new-book-how-javascript-works\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/05\/Douglas-Crockford.jpg\",\"keywords\":[\"Codemotion Amsterdam\"],\"articleSection\":[\"JavaScript\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/frontend\/javascript\/douglas-crockford-presents-his-new-book-how-javascript-works\/\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/frontend\/javascript\/douglas-crockford-presents-his-new-book-how-javascript-works\/\",\"name\":\"Douglas Crockford and his book \u201cHow JavaScript works\u201d - Codemotion\",\"isPartOf\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/frontend\/javascript\/douglas-crockford-presents-his-new-book-how-javascript-works\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/frontend\/javascript\/douglas-crockford-presents-his-new-book-how-javascript-works\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/05\/Douglas-Crockford.jpg\",\"datePublished\":\"2020-02-10T09:25:00+00:00\",\"dateModified\":\"2021-12-23T14:29:36+00:00\",\"description\":\"After about 10 years from his first book called \u201cJavaScript: The Good Parts\u201d, Douglas Crockford has recently released a new one: \u201cHow JavaScript works\u201d.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/frontend\/javascript\/douglas-crockford-presents-his-new-book-how-javascript-works\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.codemotion.com\/magazine\/frontend\/javascript\/douglas-crockford-presents-his-new-book-how-javascript-works\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/frontend\/javascript\/douglas-crockford-presents-his-new-book-how-javascript-works\/#primaryimage\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/05\/Douglas-Crockford.jpg\",\"contentUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/05\/Douglas-Crockford.jpg\",\"width\":1004,\"height\":675,\"caption\":\"Douglas Crockford at 2013 NC GIS Conference, the Raleigh Convention Center, Raleigh, NC.\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/frontend\/javascript\/douglas-crockford-presents-his-new-book-how-javascript-works\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.codemotion.com\/magazine\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Frontend\",\"item\":\"https:\/\/www.codemotion.com\/magazine\/frontend\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Web Developer\",\"item\":\"https:\/\/www.codemotion.com\/magazine\/frontend\/web-developer\/\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Douglas Crockford and his book \u201cHow JavaScript works\u201d\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#website\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/\",\"name\":\"Codemotion Magazine\",\"description\":\"We code the future. Together\",\"publisher\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.codemotion.com\/magazine\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#organization\",\"name\":\"Codemotion\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/codemotionlogo.png\",\"contentUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/codemotionlogo.png\",\"width\":225,\"height\":225,\"caption\":\"Codemotion\"},\"image\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/Codemotion.Italy\/\",\"https:\/\/x.com\/CodemotionIT\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/ff02597ce9f05cd23208147d723ff906\",\"name\":\"Yuri Drabik\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/82097622af0861093d3bd7b1d29bc5336814b972a112b1b82c97afe64a3e7c51?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/82097622af0861093d3bd7b1d29bc5336814b972a112b1b82c97afe64a3e7c51?s=96&d=mm&r=g\",\"caption\":\"Yuri Drabik\"},\"description\":\"Started as a frontend web developer, constantly expanding the range of interests in tech. Author of the blog JavaScript Room\",\"sameAs\":[\"http:\/\/roomjs.com\",\"https:\/\/www.instagram.com\/room_js\/\"],\"url\":\"https:\/\/www.codemotion.com\/magazine\/author\/yuri-drabik\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Douglas Crockford and his book \u201cHow JavaScript works\u201d - Codemotion","description":"After about 10 years from his first book called \u201cJavaScript: The Good Parts\u201d, Douglas Crockford has recently released a new one: \u201cHow JavaScript works\u201d.","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.codemotion.com\/magazine\/frontend\/javascript\/douglas-crockford-presents-his-new-book-how-javascript-works\/","og_locale":"en_US","og_type":"article","og_title":"Douglas Crockford and his book \u201cHow JavaScript works\u201d","og_description":"After about 10 years from his first book called \u201cJavaScript: The Good Parts\u201d, Douglas Crockford has recently released a new one: \u201cHow JavaScript works\u201d.","og_url":"https:\/\/www.codemotion.com\/magazine\/frontend\/javascript\/douglas-crockford-presents-his-new-book-how-javascript-works\/","og_site_name":"Codemotion Magazine","article_publisher":"https:\/\/www.facebook.com\/Codemotion.Italy\/","article_published_time":"2020-02-10T09:25:00+00:00","article_modified_time":"2021-12-23T14:29:36+00:00","author":"Yuri Drabik","twitter_card":"summary_large_image","twitter_image":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/05\/Douglas-Crockford.jpg","twitter_creator":"@CodemotionIT","twitter_site":"@CodemotionIT","twitter_misc":{"Written by":"Yuri Drabik","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.codemotion.com\/magazine\/frontend\/javascript\/douglas-crockford-presents-his-new-book-how-javascript-works\/#article","isPartOf":{"@id":"https:\/\/www.codemotion.com\/magazine\/frontend\/javascript\/douglas-crockford-presents-his-new-book-how-javascript-works\/"},"author":{"name":"Yuri Drabik","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/ff02597ce9f05cd23208147d723ff906"},"headline":"Douglas Crockford and his book \u201cHow JavaScript works\u201d","datePublished":"2020-02-10T09:25:00+00:00","dateModified":"2021-12-23T14:29:36+00:00","mainEntityOfPage":{"@id":"https:\/\/www.codemotion.com\/magazine\/frontend\/javascript\/douglas-crockford-presents-his-new-book-how-javascript-works\/"},"wordCount":831,"publisher":{"@id":"https:\/\/www.codemotion.com\/magazine\/#organization"},"image":{"@id":"https:\/\/www.codemotion.com\/magazine\/frontend\/javascript\/douglas-crockford-presents-his-new-book-how-javascript-works\/#primaryimage"},"thumbnailUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/05\/Douglas-Crockford.jpg","keywords":["Codemotion Amsterdam"],"articleSection":["JavaScript"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.codemotion.com\/magazine\/frontend\/javascript\/douglas-crockford-presents-his-new-book-how-javascript-works\/","url":"https:\/\/www.codemotion.com\/magazine\/frontend\/javascript\/douglas-crockford-presents-his-new-book-how-javascript-works\/","name":"Douglas Crockford and his book \u201cHow JavaScript works\u201d - Codemotion","isPartOf":{"@id":"https:\/\/www.codemotion.com\/magazine\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.codemotion.com\/magazine\/frontend\/javascript\/douglas-crockford-presents-his-new-book-how-javascript-works\/#primaryimage"},"image":{"@id":"https:\/\/www.codemotion.com\/magazine\/frontend\/javascript\/douglas-crockford-presents-his-new-book-how-javascript-works\/#primaryimage"},"thumbnailUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/05\/Douglas-Crockford.jpg","datePublished":"2020-02-10T09:25:00+00:00","dateModified":"2021-12-23T14:29:36+00:00","description":"After about 10 years from his first book called \u201cJavaScript: The Good Parts\u201d, Douglas Crockford has recently released a new one: \u201cHow JavaScript works\u201d.","breadcrumb":{"@id":"https:\/\/www.codemotion.com\/magazine\/frontend\/javascript\/douglas-crockford-presents-his-new-book-how-javascript-works\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.codemotion.com\/magazine\/frontend\/javascript\/douglas-crockford-presents-his-new-book-how-javascript-works\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.codemotion.com\/magazine\/frontend\/javascript\/douglas-crockford-presents-his-new-book-how-javascript-works\/#primaryimage","url":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/05\/Douglas-Crockford.jpg","contentUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/05\/Douglas-Crockford.jpg","width":1004,"height":675,"caption":"Douglas Crockford at 2013 NC GIS Conference, the Raleigh Convention Center, Raleigh, NC."},{"@type":"BreadcrumbList","@id":"https:\/\/www.codemotion.com\/magazine\/frontend\/javascript\/douglas-crockford-presents-his-new-book-how-javascript-works\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.codemotion.com\/magazine\/"},{"@type":"ListItem","position":2,"name":"Frontend","item":"https:\/\/www.codemotion.com\/magazine\/frontend\/"},{"@type":"ListItem","position":3,"name":"Web Developer","item":"https:\/\/www.codemotion.com\/magazine\/frontend\/web-developer\/"},{"@type":"ListItem","position":4,"name":"Douglas Crockford and his book \u201cHow JavaScript works\u201d"}]},{"@type":"WebSite","@id":"https:\/\/www.codemotion.com\/magazine\/#website","url":"https:\/\/www.codemotion.com\/magazine\/","name":"Codemotion Magazine","description":"We code the future. Together","publisher":{"@id":"https:\/\/www.codemotion.com\/magazine\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.codemotion.com\/magazine\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.codemotion.com\/magazine\/#organization","name":"Codemotion","url":"https:\/\/www.codemotion.com\/magazine\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/logo\/image\/","url":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/codemotionlogo.png","contentUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/codemotionlogo.png","width":225,"height":225,"caption":"Codemotion"},"image":{"@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/Codemotion.Italy\/","https:\/\/x.com\/CodemotionIT"]},{"@type":"Person","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/ff02597ce9f05cd23208147d723ff906","name":"Yuri Drabik","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/82097622af0861093d3bd7b1d29bc5336814b972a112b1b82c97afe64a3e7c51?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/82097622af0861093d3bd7b1d29bc5336814b972a112b1b82c97afe64a3e7c51?s=96&d=mm&r=g","caption":"Yuri Drabik"},"description":"Started as a frontend web developer, constantly expanding the range of interests in tech. Author of the blog JavaScript Room","sameAs":["http:\/\/roomjs.com","https:\/\/www.instagram.com\/room_js\/"],"url":"https:\/\/www.codemotion.com\/magazine\/author\/yuri-drabik\/"}]}},"featured_image_src":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/05\/Douglas-Crockford-600x400.jpg","featured_image_src_square":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/05\/Douglas-Crockford-600x600.jpg","author_info":{"display_name":"Yuri Drabik","author_link":"https:\/\/www.codemotion.com\/magazine\/author\/yuri-drabik\/"},"uagb_featured_image_src":{"full":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/05\/Douglas-Crockford.jpg",1004,675,false],"thumbnail":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/05\/Douglas-Crockford-150x150.jpg",150,150,true],"medium":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/05\/Douglas-Crockford-300x202.jpg",300,202,true],"medium_large":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/05\/Douglas-Crockford-768x516.jpg",768,516,true],"large":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/05\/Douglas-Crockford.jpg",1004,675,false],"1536x1536":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/05\/Douglas-Crockford.jpg",1004,675,false],"2048x2048":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/05\/Douglas-Crockford.jpg",1004,675,false],"small-home-featured":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/05\/Douglas-Crockford.jpg",100,67,false],"sidebar-featured":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/05\/Douglas-Crockford-180x128.jpg",180,128,true],"genesis-singular-images":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/05\/Douglas-Crockford-896x504.jpg",896,504,true],"archive-featured":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/05\/Douglas-Crockford-400x225.jpg",400,225,true],"gb-block-post-grid-landscape":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/05\/Douglas-Crockford-600x400.jpg",600,400,true],"gb-block-post-grid-square":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/05\/Douglas-Crockford-600x600.jpg",600,600,true]},"uagb_author_info":{"display_name":"Yuri Drabik","author_link":"https:\/\/www.codemotion.com\/magazine\/author\/yuri-drabik\/"},"uagb_comment_info":0,"uagb_excerpt":"Back in 2008, Douglas Crockford wrote a book called \u201cJavaScript: The Good Parts\u201d, which became quite popular among web developers. But time goes fast and especially in the frontend world - it\u2019s flying with the speed of sound. After about 10 years, another book by this author has recently been released. It\u2019s called \u201cHow JavaScript&hellip;","lang":"en","_links":{"self":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts\/114","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/users\/6"}],"replies":[{"embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/comments?post=114"}],"version-history":[{"count":8,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts\/114\/revisions"}],"predecessor-version":[{"id":15865,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts\/114\/revisions\/15865"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/media\/115"}],"wp:attachment":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/media?parent=114"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/categories?post=114"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/tags?post=114"},{"taxonomy":"collections","embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/collections?post=114"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}