{"id":1748,"date":"2019-12-10T15:49:05","date_gmt":"2019-12-10T12:49:05","guid":{"rendered":"https:\/\/flatlogic.com\/blog\/?p=1748"},"modified":"2024-01-12T17:12:44","modified_gmt":"2024-01-12T14:12:44","slug":"19-articles-of-december-2019-to-learn-javascript","status":"publish","type":"post","link":"https:\/\/flatlogic.com\/blog\/19-articles-of-december-2019-to-learn-javascript\/","title":{"rendered":"16+ Articles of December 2019 to Learn JavaScript"},"content":{"rendered":"\n<p>Today we are going to provide you with excellent articles to learn Javascript! Enjoy fresh ideas, tips, and tricks from the JavaScript world. If you want to add an article to this list just comment on this post on&nbsp;<a target=\"_blank\" href=\"https:\/\/twitter.com\/flatlogic\" rel=\"noreferrer noopener\">Twitter<\/a>.<\/p>\n\n\n\n<div class=\"wp-block-columns has-2-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<p><a href=\"https:\/\/www.richardkotze.com\/coding\/mocking-react-hooks-unit-testing-jest\"><img decoding=\"async\" width=\"500\" height=\"375\" class=\"wp-image-1755 lazyload\" style=\"--smush-placeholder-width: 500px; --smush-placeholder-aspect-ratio: 500\/375;width: 500px;\" data-src=\"https:\/\/flatlogic.com\/blog\/wp-content\/uploads\/2019\/12\/1.jpg\" alt=\"\" data-srcset=\"https:\/\/flatlogic.com\/blog\/wp-content\/uploads\/2019\/12\/1.jpg 800w, https:\/\/flatlogic.com\/blog\/wp-content\/uploads\/2019\/12\/1-600x450.jpg 600w, https:\/\/flatlogic.com\/blog\/wp-content\/uploads\/2019\/12\/1-768x576.jpg 768w\" data-sizes=\"auto\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" data-original-sizes=\"(max-width: 500px) 100vw, 500px\" \/><\/a><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<h4 class=\"wp-block-heading\"><strong>Mocking React hooks when unit testing using Jest<\/strong><\/h4>\n\n\n\n<p>by @richardkotze<\/p>\n\n\n\n<p><a href=\"https:\/\/www.richardkotze.com\/coding\/mocking-react-hooks-unit-testing-jest\" rel=\"nofollow\">Read the article<\/a><\/p>\n<\/div>\n<\/div>\n\n\n\n<p><\/p>\n\n\n\n<div class=\"wp-block-columns has-2-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<p> <a href=\"https:\/\/medium.com\/javascript-in-plain-english\/pros-cons-of-local-persistence-strategies-for-react-native-apps-52dd68b636b6\"><img decoding=\"async\" width=\"500\" height=\"375\" class=\"wp-image-1756 lazyload\" style=\"--smush-placeholder-width: 500px; --smush-placeholder-aspect-ratio: 500\/375;width: 500px;\" data-src=\"https:\/\/flatlogic.com\/blog\/wp-content\/uploads\/2019\/12\/2.jpg\" alt=\"\" data-srcset=\"https:\/\/flatlogic.com\/blog\/wp-content\/uploads\/2019\/12\/2.jpg 800w, https:\/\/flatlogic.com\/blog\/wp-content\/uploads\/2019\/12\/2-600x450.jpg 600w, https:\/\/flatlogic.com\/blog\/wp-content\/uploads\/2019\/12\/2-768x576.jpg 768w\" data-sizes=\"auto\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" data-original-sizes=\"(max-width: 500px) 100vw, 500px\" \/><\/a><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<h4 class=\"wp-block-heading\"><strong>Pros &amp; Cons of Local Persistence Strategies for React-Native Apps<\/strong><\/h4>\n\n\n\n<p>by Jolanta<\/p>\n\n\n\n<p><a href=\"https:\/\/medium.com\/javascript-in-plain-english\/pros-cons-of-local-persistence-strategies-for-react-native-apps-52dd68b636b6\" rel=\"nofollow\">Read the article<\/a><\/p>\n<\/div>\n<\/div>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<div class=\"wp-block-columns has-2-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<p><a href=\"https:\/\/medium.com\/walmartlabs\/react-native-memory-profiling-jsc-vs-v8-vs-hermes-1626949a653b\"><img decoding=\"async\" width=\"500\" height=\"375\" class=\"wp-image-1759 lazyload\" style=\"--smush-placeholder-width: 500px; --smush-placeholder-aspect-ratio: 500\/375;width: 500px;\" data-src=\"https:\/\/flatlogic.com\/blog\/wp-content\/uploads\/2019\/12\/3.jpg\" alt=\"\" data-srcset=\"https:\/\/flatlogic.com\/blog\/wp-content\/uploads\/2019\/12\/3.jpg 800w, https:\/\/flatlogic.com\/blog\/wp-content\/uploads\/2019\/12\/3-600x450.jpg 600w, https:\/\/flatlogic.com\/blog\/wp-content\/uploads\/2019\/12\/3-768x576.jpg 768w\" data-sizes=\"auto\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" data-original-sizes=\"(max-width: 500px) 100vw, 500px\" \/><\/a><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<h4 class=\"wp-block-heading\"><strong>React Native Memory profiling (JSC vs V8 vs Hermes)<\/strong><\/h4>\n\n <a href=\"https:\/\/flatlogic.com\/generator\"><img decoding=\"async\" data-src=\"https:\/\/flatlogic.com\/blog\/wp-content\/uploads\/2025\/10\/Introducing-professional-vibe-coding.png\" alt=\"Professional Vibe Coding\" class=\"banner-img lazyload\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 2560px; --smush-placeholder-aspect-ratio: 2560\/640;\" data-srcset=\"https:\/\/flatlogic.com\/blog\/wp-content\/uploads\/2025\/10\/Introducing-professional-vibe-coding.png 2560w, https:\/\/flatlogic.com\/blog\/wp-content\/uploads\/2025\/10\/Introducing-professional-vibe-coding-600x150.png 600w, https:\/\/flatlogic.com\/blog\/wp-content\/uploads\/2025\/10\/Introducing-professional-vibe-coding-1024x256.png 1024w, https:\/\/flatlogic.com\/blog\/wp-content\/uploads\/2025\/10\/Introducing-professional-vibe-coding-768x192.png 768w, https:\/\/flatlogic.com\/blog\/wp-content\/uploads\/2025\/10\/Introducing-professional-vibe-coding-1536x384.png 1536w, https:\/\/flatlogic.com\/blog\/wp-content\/uploads\/2025\/10\/Introducing-professional-vibe-coding-2048x512.png 2048w\" data-sizes=\"auto\" data-original-sizes=\"(max-width: 2560px) 100vw, 2560px\"> <\/a>\n\n\n<p>by Bhaskar Gyan Vardhan<\/p>\n\n\n\n<p><a href=\"https:\/\/medium.com\/walmartlabs\/react-native-memory-profiling-jsc-vs-v8-vs-hermes-1626949a653b\" rel=\"nofollow\">Read the article&nbsp;<\/a><\/p>\n<\/div>\n<\/div>\n\n\n\n<p><\/p>\n\n\n\n<div class=\"wp-block-columns has-2-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<p><a href=\"https:\/\/flatlogic.com\/blog\/top-react-native-ui-components-kits\/\"><img decoding=\"async\" class=\"wp-image-1747 lazyload\" style=\"width: 500px;\" data-src=\"https:\/\/flatlogic.com\/blog\/wp-content\/uploads\/2019\/12\/Frame-8-1.png\" alt=\"\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\"><\/a><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<h4 class=\"wp-block-heading\"><strong>Top React Native UI Component Kits<\/strong><\/h4>\n\n\n\n<p>by @flatlogic<\/p>\n\n\n\n<p><a href=\"https:\/\/flatlogic.com\/blog\/top-react-native-ui-components-kits\/\" rel=\"nofollow\">Read the article&nbsp;<\/a><\/p>\n<\/div>\n<\/div>\n\n\n\n<p><\/p>\n\n\n\n<div class=\"wp-block-columns has-2-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<p><a href=\"https:\/\/blog.logrocket.com\/correctly-typed-react-components-with-typescript\/\"><img decoding=\"async\" width=\"500\" height=\"375\" class=\"wp-image-1771 lazyload\" style=\"--smush-placeholder-width: 500px; --smush-placeholder-aspect-ratio: 500\/375;width: 500px;\" data-src=\"https:\/\/flatlogic.com\/blog\/wp-content\/uploads\/2019\/12\/4.jpg\" alt=\"\" data-srcset=\"https:\/\/flatlogic.com\/blog\/wp-content\/uploads\/2019\/12\/4.jpg 800w, https:\/\/flatlogic.com\/blog\/wp-content\/uploads\/2019\/12\/4-600x450.jpg 600w, https:\/\/flatlogic.com\/blog\/wp-content\/uploads\/2019\/12\/4-768x576.jpg 768w\" data-sizes=\"auto\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" data-original-sizes=\"(max-width: 500px) 100vw, 500px\" \/><\/a><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<h4 class=\"wp-block-heading\"><strong>How to write correctly typed React components with TypeScript<\/strong><\/h4>\n\n\n\n<p>by @BorrelliDev<\/p>\n\n\n\n<p><a href=\"https:\/\/blog.logrocket.com\/correctly-typed-react-components-with-typescript\/\" rel=\"nofollow\">Read the article&nbsp;<\/a><\/p>\n<\/div>\n<\/div>\n\n\n\n<p><\/p>\n\n\n\n<div class=\"wp-block-columns has-2-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<p><a href=\"https:\/\/medium.com\/quick-code\/how-to-build-an-angular-8-application-with-api-request-in-10-minutes-628266d05e9\"><img decoding=\"async\" width=\"500\" height=\"375\" class=\"wp-image-1772 lazyload\" style=\"--smush-placeholder-width: 500px; --smush-placeholder-aspect-ratio: 500\/375;width: 500px;\" data-src=\"https:\/\/flatlogic.com\/blog\/wp-content\/uploads\/2019\/12\/5.jpg\" alt=\"\" data-srcset=\"https:\/\/flatlogic.com\/blog\/wp-content\/uploads\/2019\/12\/5.jpg 800w, https:\/\/flatlogic.com\/blog\/wp-content\/uploads\/2019\/12\/5-600x450.jpg 600w, https:\/\/flatlogic.com\/blog\/wp-content\/uploads\/2019\/12\/5-768x576.jpg 768w\" data-sizes=\"auto\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" data-original-sizes=\"(max-width: 500px) 100vw, 500px\" \/><\/a><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<h4 class=\"wp-block-heading\"><strong>How to build an Angular 8 application with API request in 10 minutes?<\/strong><\/h4>\n\n\n\n<p>by @radekfabisiak<\/p>\n\n\n\n<p><a href=\"https:\/\/medium.com\/quick-code\/how-to-build-an-angular-8-application-with-api-request-in-10-minutes-628266d05e9\" rel=\"nofollow\">Read the article&nbsp;<\/a><\/p>\n<\/div>\n<\/div>\n\n\n\n<p><\/p>\n\n\n\n<div class=\"wp-block-columns has-2-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<p><a href=\"https:\/\/dev.to\/razgandeanu\/9-extremely-powerful-javascript-hacks-4g3p\"><img decoding=\"async\" width=\"500\" height=\"375\" class=\"wp-image-1773 lazyload\" style=\"--smush-placeholder-width: 500px; --smush-placeholder-aspect-ratio: 500\/375;width: 500px;\" data-src=\"https:\/\/flatlogic.com\/blog\/wp-content\/uploads\/2019\/12\/6.jpg\" alt=\"\" data-srcset=\"https:\/\/flatlogic.com\/blog\/wp-content\/uploads\/2019\/12\/6.jpg 800w, https:\/\/flatlogic.com\/blog\/wp-content\/uploads\/2019\/12\/6-600x450.jpg 600w, https:\/\/flatlogic.com\/blog\/wp-content\/uploads\/2019\/12\/6-768x576.jpg 768w\" data-sizes=\"auto\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" data-original-sizes=\"(max-width: 500px) 100vw, 500px\" \/><\/a><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<h4 class=\"wp-block-heading\"><strong>9 Extremely Powerful JavaScript Hacks<\/strong><\/h4>\n\n\n\n<p>by @razgandeanu<\/p>\n\n\n\n<p><a href=\"https:\/\/dev.to\/razgandeanu\/9-extremely-powerful-javascript-hacks-4g3p\" rel=\"nofollow\">Read the article&nbsp;<\/a><\/p>\n<\/div>\n<\/div>\n\n\n\n<p> <\/p>\n\n\n\n<div class=\"wp-block-columns has-2-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<p><a href=\"https:\/\/dev.to\/carlillo\/clean-code-applied-to-javascript-part-iii-functions-4235\"><img decoding=\"async\" width=\"500\" height=\"375\" class=\"wp-image-1774 lazyload\" style=\"--smush-placeholder-width: 500px; --smush-placeholder-aspect-ratio: 500\/375;width: 500px;\" data-src=\"https:\/\/flatlogic.com\/blog\/wp-content\/uploads\/2019\/12\/7.jpg\" alt=\"\" data-srcset=\"https:\/\/flatlogic.com\/blog\/wp-content\/uploads\/2019\/12\/7.jpg 800w, https:\/\/flatlogic.com\/blog\/wp-content\/uploads\/2019\/12\/7-600x450.jpg 600w, https:\/\/flatlogic.com\/blog\/wp-content\/uploads\/2019\/12\/7-768x576.jpg 768w\" data-sizes=\"auto\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" data-original-sizes=\"(max-width: 500px) 100vw, 500px\" \/><\/a><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<h4 class=\"wp-block-heading\"><strong>Clean Code Applied to JavaScript &#8211; Part III. Functions<\/strong><\/h4>\n\n\n\n<p>by @Carlillo<\/p>\n\n\n\n<p><a href=\"https:\/\/dev.to\/carlillo\/clean-code-applied-to-javascript-part-iii-functions-4235\" rel=\"nofollow\">Read the article&nbsp;<\/a><\/p>\n<\/div>\n<\/div>\n\n\n\n<p><\/p>\n\n\n\n<div class=\"wp-block-columns has-2-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<p><a href=\"https:\/\/medium.com\/better-programming\/creating-trellos-ui-with-css-grid-ed1fbfcd9448\"><img decoding=\"async\" width=\"500\" height=\"375\" class=\"wp-image-1775 lazyload\" style=\"--smush-placeholder-width: 500px; --smush-placeholder-aspect-ratio: 500\/375;width: 500px;\" data-src=\"https:\/\/flatlogic.com\/blog\/wp-content\/uploads\/2019\/12\/8.jpg\" alt=\"\" data-srcset=\"https:\/\/flatlogic.com\/blog\/wp-content\/uploads\/2019\/12\/8.jpg 800w, https:\/\/flatlogic.com\/blog\/wp-content\/uploads\/2019\/12\/8-600x450.jpg 600w, https:\/\/flatlogic.com\/blog\/wp-content\/uploads\/2019\/12\/8-768x576.jpg 768w\" data-sizes=\"auto\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" data-original-sizes=\"(max-width: 500px) 100vw, 500px\" \/><\/a><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<h4 class=\"wp-block-heading\"><strong>Creating Trello&#8217;s UI With CSS Grid<\/strong><\/h4>\n\n\n\n<p>by Joshua Saunders<\/p>\n\n\n\n<p><a href=\"https:\/\/medium.com\/better-programming\/creating-trellos-ui-with-css-grid-ed1fbfcd9448\" rel=\"nofollow\">Read the article<\/a>&nbsp;<\/p>\n<\/div>\n<\/div>\n\n\n\n<p><\/p>\n\n\n\n<div class=\"wp-block-columns has-2-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<p><a href=\"https:\/\/medium.com\/better-programming\/why-should-we-stop-using-objects-as-maps-in-javascript-19c0275da72f\"><img decoding=\"async\" width=\"500\" height=\"375\" class=\"wp-image-1776 lazyload\" style=\"--smush-placeholder-width: 500px; --smush-placeholder-aspect-ratio: 500\/375;width: 500px;\" data-src=\"https:\/\/flatlogic.com\/blog\/wp-content\/uploads\/2019\/12\/9.jpg\" alt=\"\" data-srcset=\"https:\/\/flatlogic.com\/blog\/wp-content\/uploads\/2019\/12\/9.jpg 800w, https:\/\/flatlogic.com\/blog\/wp-content\/uploads\/2019\/12\/9-600x450.jpg 600w, https:\/\/flatlogic.com\/blog\/wp-content\/uploads\/2019\/12\/9-768x576.jpg 768w\" data-sizes=\"auto\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" data-original-sizes=\"(max-width: 500px) 100vw, 500px\" \/><\/a><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<h4 class=\"wp-block-heading\"><strong>Why Should We Stop Using Objects As Maps in JavaScript?<\/strong><\/h4>\n\n\n\n<p>by @AuMayeung<\/p>\n\n\n\n<p><a href=\"https:\/\/medium.com\/better-programming\/why-should-we-stop-using-objects-as-maps-in-javascript-19c0275da72f\" rel=\"nofollow\">Read the article&nbsp;<\/a><\/p>\n<\/div>\n<\/div>\n\n\n\n<p><\/p>\n\n\n\n<div class=\"wp-block-columns has-2-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<p><a href=\"https:\/\/medium.com\/better-programming\/angular-application-with-loaders-216390c6da92\"><img decoding=\"async\" width=\"500\" height=\"375\" class=\"wp-image-1777 lazyload\" style=\"--smush-placeholder-width: 500px; --smush-placeholder-aspect-ratio: 500\/375;width: 500px;\" data-src=\"https:\/\/flatlogic.com\/blog\/wp-content\/uploads\/2019\/12\/10.jpg\" alt=\"\" data-srcset=\"https:\/\/flatlogic.com\/blog\/wp-content\/uploads\/2019\/12\/10.jpg 800w, https:\/\/flatlogic.com\/blog\/wp-content\/uploads\/2019\/12\/10-600x450.jpg 600w, https:\/\/flatlogic.com\/blog\/wp-content\/uploads\/2019\/12\/10-768x576.jpg 768w\" data-sizes=\"auto\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" data-original-sizes=\"(max-width: 500px) 100vw, 500px\" \/><\/a><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<h4 class=\"wp-block-heading\"><strong>Angular Application With Loaders<\/strong><\/h4>\n\n\n\n<p>by Pagis<\/p>\n\n\n\n<p><a href=\"https:\/\/medium.com\/better-programming\/angular-application-with-loaders-216390c6da92\" rel=\"nofollow\">Read the article&nbsp;<\/a><\/p>\n<\/div>\n<\/div>\n\n\n\n<p><\/p>\n\n\n\n<div class=\"wp-block-columns has-2-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<p><a href=\"https:\/\/medium.com\/better-programming\/better-unit-testing-part-2-80d29fc0f4b3\"><img decoding=\"async\" width=\"500\" height=\"375\" class=\"wp-image-1778 lazyload\" style=\"--smush-placeholder-width: 500px; --smush-placeholder-aspect-ratio: 500\/375;width: 500px;\" data-src=\"https:\/\/flatlogic.com\/blog\/wp-content\/uploads\/2019\/12\/11.jpg\" alt=\"\" data-srcset=\"https:\/\/flatlogic.com\/blog\/wp-content\/uploads\/2019\/12\/11.jpg 800w, https:\/\/flatlogic.com\/blog\/wp-content\/uploads\/2019\/12\/11-600x450.jpg 600w, https:\/\/flatlogic.com\/blog\/wp-content\/uploads\/2019\/12\/11-768x576.jpg 768w\" data-sizes=\"auto\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" data-original-sizes=\"(max-width: 500px) 100vw, 500px\" \/><\/a><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<h4 class=\"wp-block-heading\"><strong>Better Unit Testing (Part 2)<\/strong><\/h4>\n\n\n\n<p>by Dhananjay Trivedi<\/p>\n\n\n\n<p><a href=\"https:\/\/medium.com\/better-programming\/better-unit-testing-part-2-80d29fc0f4b3\" rel=\"nofollow\">Read the article&nbsp;<\/a><br><\/p>\n<\/div>\n<\/div>\n\n\n\n<p><\/p>\n\n\n\n<div class=\"wp-block-columns has-2-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<p><a href=\"https:\/\/blog.bitsrc.io\/setting-up-a-logging-infrastructure-in-nodejs-ec34898e677e\"><img decoding=\"async\" width=\"500\" height=\"375\" class=\"wp-image-1779 lazyload\" style=\"--smush-placeholder-width: 500px; --smush-placeholder-aspect-ratio: 500\/375;width: 500px;\" data-src=\"https:\/\/flatlogic.com\/blog\/wp-content\/uploads\/2019\/12\/12.jpg\" alt=\"\" data-srcset=\"https:\/\/flatlogic.com\/blog\/wp-content\/uploads\/2019\/12\/12.jpg 800w, https:\/\/flatlogic.com\/blog\/wp-content\/uploads\/2019\/12\/12-600x450.jpg 600w, https:\/\/flatlogic.com\/blog\/wp-content\/uploads\/2019\/12\/12-768x576.jpg 768w\" data-sizes=\"auto\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" data-original-sizes=\"(max-width: 500px) 100vw, 500px\" \/><\/a><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<h4 class=\"wp-block-heading\"><strong>Setting Up a Logging Infrastructure in Nodejs<\/strong><\/h4>\n\n\n\n<p>by @ADhasmana<\/p>\n\n\n\n<p><a href=\"https:\/\/blog.bitsrc.io\/setting-up-a-logging-infrastructure-in-nodejs-ec34898e677e\" rel=\"nofollow\">Read the article&nbsp;<\/a><\/p>\n<\/div>\n<\/div>\n\n\n\n<p><\/p>\n\n\n\n<div class=\"wp-block-columns has-2-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<p><a href=\"https:\/\/levelup.gitconnected.com\/a-recap-of-frontend-development-in-2019-1e7d07966d6c\"><img decoding=\"async\" width=\"500\" height=\"375\" class=\"wp-image-1780 lazyload\" style=\"--smush-placeholder-width: 500px; --smush-placeholder-aspect-ratio: 500\/375;width: 500px;\" data-src=\"https:\/\/flatlogic.com\/blog\/wp-content\/uploads\/2019\/12\/12-1.jpg\" alt=\"\" data-srcset=\"https:\/\/flatlogic.com\/blog\/wp-content\/uploads\/2019\/12\/12-1.jpg 800w, https:\/\/flatlogic.com\/blog\/wp-content\/uploads\/2019\/12\/12-1-600x450.jpg 600w, https:\/\/flatlogic.com\/blog\/wp-content\/uploads\/2019\/12\/12-1-768x576.jpg 768w\" data-sizes=\"auto\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" data-original-sizes=\"(max-width: 500px) 100vw, 500px\" \/><\/a><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<h4 class=\"wp-block-heading\"><strong>A Recap of Frontend Development in 2019<\/strong><\/h4>\n\n\n\n<p>by @TreyHuffine<\/p>\n\n\n\n<p><a href=\"https:\/\/levelup.gitconnected.com\/a-recap-of-frontend-development-in-2019-1e7d07966d6c\" rel=\"nofollow\">Read the article&nbsp;<\/a><\/p>\n<\/div>\n<\/div>\n\n\n\n<p><\/p>\n\n\n\n<div class=\"wp-block-columns has-2-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<p><a href=\"https:\/\/blog.soshace.com\/building-a-telegram-bot-with-node-js\/\"><img decoding=\"async\" width=\"500\" height=\"375\" class=\"wp-image-1781 lazyload\" style=\"--smush-placeholder-width: 500px; --smush-placeholder-aspect-ratio: 500\/375;width: 500px;\" data-src=\"https:\/\/flatlogic.com\/blog\/wp-content\/uploads\/2019\/12\/13.jpg\" alt=\"\" data-srcset=\"https:\/\/flatlogic.com\/blog\/wp-content\/uploads\/2019\/12\/13.jpg 800w, https:\/\/flatlogic.com\/blog\/wp-content\/uploads\/2019\/12\/13-600x450.jpg 600w, https:\/\/flatlogic.com\/blog\/wp-content\/uploads\/2019\/12\/13-768x576.jpg 768w\" data-sizes=\"auto\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" data-original-sizes=\"(max-width: 500px) 100vw, 500px\" \/><\/a><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<h4 class=\"wp-block-heading\"><strong>Building a Telegram Bot with Node.js<\/strong><\/h4>\n\n\n\n<p>by Godson Obielum<\/p>\n\n\n\n<p><a href=\"https:\/\/blog.soshace.com\/building-a-telegram-bot-with-node-js\/\" rel=\"nofollow\">Read the article&nbsp;<\/a><\/p>\n<\/div>\n<\/div>\n\n\n\n<p><\/p>\n\n\n\n<div class=\"wp-block-columns has-2-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<p><a href=\"https:\/\/wanago.io\/2019\/12\/09\/javascript-design-patterns-facade-react-hooks\/\"><img decoding=\"async\" width=\"500\" height=\"375\" class=\"wp-image-1783 lazyload\" style=\"--smush-placeholder-width: 500px; --smush-placeholder-aspect-ratio: 500\/375;width: 500px;\" data-src=\"https:\/\/flatlogic.com\/blog\/wp-content\/uploads\/2019\/12\/14-1.jpg\" alt=\"\" data-srcset=\"https:\/\/flatlogic.com\/blog\/wp-content\/uploads\/2019\/12\/14-1.jpg 800w, https:\/\/flatlogic.com\/blog\/wp-content\/uploads\/2019\/12\/14-1-600x450.jpg 600w, https:\/\/flatlogic.com\/blog\/wp-content\/uploads\/2019\/12\/14-1-768x576.jpg 768w\" data-sizes=\"auto\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" data-original-sizes=\"(max-width: 500px) 100vw, 500px\" \/><\/a><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<h4 class=\"wp-block-heading\"><strong>JavaScript design patterns #3. The Facade pattern and applying it to React Hooks<\/strong><\/h4>\n\n\n\n<p>by @wanago_io<\/p>\n\n\n\n<p><a href=\"https:\/\/wanago.io\/2019\/12\/09\/javascript-design-patterns-facade-react-hooks\/\" rel=\"nofollow\">Read the article&nbsp;<\/a><\/p>\n<\/div>\n<\/div>\n\n\n\n<h3 class=\"wp-block-heading\">You might also like these articles:<\/h3>\n\n\n\n<ul class=\"wp-block-list\"><li><a href=\"https:\/\/flatlogic.com\/blog\/new-and-noteworthy-vue-js-open-source-projects-part-1\/\">New and Noteworthy Vue.js Open Source Projects. Part 1<\/a><\/li><li><a href=\"https:\/\/flatlogic.com\/blog\/top-material-react-admin-dashboards\/\">Top 8 Material Admin Dashboards<\/a><\/li><li><a href=\"https:\/\/flatlogic.com\/blog\/jquery-vs-javascript-why-we-removed-jquery-from-our-templates\/\">jQuery vs JavaScript. Why we Removed jQuery From our Templates<\/a><\/li><\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Today we are going to provide you with excellent articles to read in December. Enjoy fresh ideas, tips, and tricks from the JavaScript world. <\/p>\n","protected":false},"author":3,"featured_media":1785,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"flatlogic_tldr":"","flatlogic_facts":[],"footnotes":""},"categories":[1],"tags":[54,35,22,47],"class_list":["post-1748","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-news","tag-javascript","tag-reactjs","tag-react-native","tag-reviews"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.2 (Yoast SEO v26.2) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>16+ Articles of December 2019 to Learn JavaScript - Flatlogic Blog<\/title>\n<meta name=\"description\" content=\"Today we are going to provide you with excellent articles to read in December. Enjoy fresh ideas, tips, and tricks from the JavaScript world.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/flatlogic.com\/blog\/19-articles-of-december-2019-to-learn-javascript\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"16+ Articles of December 2019 to Learn JavaScript\" \/>\n<meta property=\"og:description\" content=\"Today we are going to provide you with excellent articles to read in December. Enjoy fresh ideas, tips, and tricks from the JavaScript world.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/flatlogic.com\/blog\/19-articles-of-december-2019-to-learn-javascript\/\" \/>\n<meta property=\"og:site_name\" content=\"Flatlogic Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/flatlogic\" \/>\n<meta property=\"article:published_time\" content=\"2019-12-10T12:49:05+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-01-12T14:12:44+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/flatlogic.com\/blog\/wp-content\/uploads\/2019\/12\/Top-JS-Art.png\" \/>\n\t<meta property=\"og:image:width\" content=\"800\" \/>\n\t<meta property=\"og:image:height\" content=\"600\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Nastassia Ovchinnikova\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@flatlogic\" \/>\n<meta name=\"twitter:site\" content=\"@flatlogic\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Nastassia Ovchinnikova\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"16+ Articles of December 2019 to Learn JavaScript - Flatlogic Blog","description":"Today we are going to provide you with excellent articles to read in December. Enjoy fresh ideas, tips, and tricks from the JavaScript world.","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:\/\/flatlogic.com\/blog\/19-articles-of-december-2019-to-learn-javascript\/","og_locale":"en_US","og_type":"article","og_title":"16+ Articles of December 2019 to Learn JavaScript","og_description":"Today we are going to provide you with excellent articles to read in December. Enjoy fresh ideas, tips, and tricks from the JavaScript world.","og_url":"https:\/\/flatlogic.com\/blog\/19-articles-of-december-2019-to-learn-javascript\/","og_site_name":"Flatlogic Blog","article_publisher":"https:\/\/www.facebook.com\/flatlogic","article_published_time":"2019-12-10T12:49:05+00:00","article_modified_time":"2024-01-12T14:12:44+00:00","og_image":[{"width":800,"height":600,"url":"https:\/\/flatlogic.com\/blog\/wp-content\/uploads\/2019\/12\/Top-JS-Art.png","type":"image\/png"}],"author":"Nastassia Ovchinnikova","twitter_card":"summary_large_image","twitter_creator":"@flatlogic","twitter_site":"@flatlogic","twitter_misc":{"Written by":"Nastassia Ovchinnikova","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/flatlogic.com\/blog\/19-articles-of-december-2019-to-learn-javascript\/#article","isPartOf":{"@id":"https:\/\/flatlogic.com\/blog\/19-articles-of-december-2019-to-learn-javascript\/"},"author":{"name":"Nastassia Ovchinnikova","@id":"https:\/\/flatlogic.com\/blog\/#\/schema\/person\/bed36c984b2f920a7fc450877f425eed"},"headline":"16+ Articles of December 2019 to Learn JavaScript","datePublished":"2019-12-10T12:49:05+00:00","dateModified":"2024-01-12T14:12:44+00:00","mainEntityOfPage":{"@id":"https:\/\/flatlogic.com\/blog\/19-articles-of-december-2019-to-learn-javascript\/"},"wordCount":298,"publisher":{"@id":"https:\/\/flatlogic.com\/blog\/#organization"},"image":{"@id":"https:\/\/flatlogic.com\/blog\/19-articles-of-december-2019-to-learn-javascript\/#primaryimage"},"thumbnailUrl":"https:\/\/flatlogic.com\/blog\/wp-content\/uploads\/2019\/12\/Top-JS-Art.png","keywords":["Javascript","React","React Native","Reviews"],"articleSection":["News"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/flatlogic.com\/blog\/19-articles-of-december-2019-to-learn-javascript\/","url":"https:\/\/flatlogic.com\/blog\/19-articles-of-december-2019-to-learn-javascript\/","name":"16+ Articles of December 2019 to Learn JavaScript - Flatlogic Blog","isPartOf":{"@id":"https:\/\/flatlogic.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/flatlogic.com\/blog\/19-articles-of-december-2019-to-learn-javascript\/#primaryimage"},"image":{"@id":"https:\/\/flatlogic.com\/blog\/19-articles-of-december-2019-to-learn-javascript\/#primaryimage"},"thumbnailUrl":"https:\/\/flatlogic.com\/blog\/wp-content\/uploads\/2019\/12\/Top-JS-Art.png","datePublished":"2019-12-10T12:49:05+00:00","dateModified":"2024-01-12T14:12:44+00:00","description":"Today we are going to provide you with excellent articles to read in December. Enjoy fresh ideas, tips, and tricks from the JavaScript world.","breadcrumb":{"@id":"https:\/\/flatlogic.com\/blog\/19-articles-of-december-2019-to-learn-javascript\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/flatlogic.com\/blog\/19-articles-of-december-2019-to-learn-javascript\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/flatlogic.com\/blog\/19-articles-of-december-2019-to-learn-javascript\/#primaryimage","url":"https:\/\/flatlogic.com\/blog\/wp-content\/uploads\/2019\/12\/Top-JS-Art.png","contentUrl":"https:\/\/flatlogic.com\/blog\/wp-content\/uploads\/2019\/12\/Top-JS-Art.png","width":800,"height":600},{"@type":"BreadcrumbList","@id":"https:\/\/flatlogic.com\/blog\/19-articles-of-december-2019-to-learn-javascript\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/flatlogic.com\/blog\/"},{"@type":"ListItem","position":2,"name":"16+ Articles of December 2019 to Learn JavaScript"}]},{"@type":"WebSite","@id":"https:\/\/flatlogic.com\/blog\/#website","url":"https:\/\/flatlogic.com\/blog\/","name":"Flatlogic Blog","description":"Vibe-coding, AI Agents, Professional Software Development Services, Case Studies and More","publisher":{"@id":"https:\/\/flatlogic.com\/blog\/#organization"},"alternateName":"Flatlogic Blog","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/flatlogic.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/flatlogic.com\/blog\/#organization","name":"Flatlogic","url":"https:\/\/flatlogic.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/flatlogic.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/flatlogic.com\/blog\/wp-content\/uploads\/2025\/10\/62ea6de0b3469aa3d6ebb528-1.png","contentUrl":"https:\/\/flatlogic.com\/blog\/wp-content\/uploads\/2025\/10\/62ea6de0b3469aa3d6ebb528-1.png","width":970,"height":257,"caption":"Flatlogic"},"image":{"@id":"https:\/\/flatlogic.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/flatlogic","https:\/\/x.com\/flatlogic","https:\/\/www.instagram.com\/flatlogiccom\/","https:\/\/www.linkedin.com\/company\/flatlogic\/"]},{"@type":"Person","@id":"https:\/\/flatlogic.com\/blog\/#\/schema\/person\/bed36c984b2f920a7fc450877f425eed","name":"Nastassia Ovchinnikova","url":"https:\/\/flatlogic.com\/blog\/author\/nastassia\/"}]}},"_links":{"self":[{"href":"https:\/\/flatlogic.com\/blog\/wp-json\/wp\/v2\/posts\/1748","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/flatlogic.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/flatlogic.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/flatlogic.com\/blog\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/flatlogic.com\/blog\/wp-json\/wp\/v2\/comments?post=1748"}],"version-history":[{"count":3,"href":"https:\/\/flatlogic.com\/blog\/wp-json\/wp\/v2\/posts\/1748\/revisions"}],"predecessor-version":[{"id":7141,"href":"https:\/\/flatlogic.com\/blog\/wp-json\/wp\/v2\/posts\/1748\/revisions\/7141"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/flatlogic.com\/blog\/wp-json\/wp\/v2\/media\/1785"}],"wp:attachment":[{"href":"https:\/\/flatlogic.com\/blog\/wp-json\/wp\/v2\/media?parent=1748"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/flatlogic.com\/blog\/wp-json\/wp\/v2\/categories?post=1748"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/flatlogic.com\/blog\/wp-json\/wp\/v2\/tags?post=1748"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}