<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Dmitri Pavlutin Blog]]></title><description><![CDATA[Dmitri Pavlutin Blog is a place to learn about JavaScript, CSS, React, Vue and more on Frontend development]]></description><link>https://dmitripavlutin.com</link><image><url>https://dmitripavlutin.com/favicon256.png</url><title>Dmitri Pavlutin Blog</title><link>https://dmitripavlutin.com</link></image><generator>RSS for Node</generator><lastBuildDate>Fri, 23 May 2025 05:32:59 GMT</lastBuildDate><copyright><![CDATA[2015 Dmitri Pavlutin]]></copyright><language><![CDATA[en]]></language><category><![CDATA[JavaScript]]></category><category><![CDATA[React]]></category><category><![CDATA[Vue]]></category><category><![CDATA[CSS]]></category><category><![CDATA[Software development]]></category><category><![CDATA[Frontend development]]></category><item><title><![CDATA[Pure Functions in JavaScript: A Beginner's Guide]]></title><description><![CDATA[A pure function always returns the same value for the same arguments and produces no side effects.]]></description><link>https://dmitripavlutin.com/javascript-pure-function/</link><guid isPermaLink="false">https://dmitripavlutin.com/javascript-pure-function/</guid><category><![CDATA[javascript]]></category><category><![CDATA[function]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Mon, 15 May 2023 00:00:00 GMT</pubDate></item><item><title><![CDATA[Record Type in TypeScript: A Quick Intro]]></title><description><![CDATA[Record type simplifies typing objects in TypeScript. Let's see how you can benefit from it.]]></description><link>https://dmitripavlutin.com/typescript-record/</link><guid isPermaLink="false">https://dmitripavlutin.com/typescript-record/</guid><category><![CDATA[typescript]]></category><category><![CDATA[object]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Fri, 28 Apr 2023 00:00:00 GMT</pubDate></item><item><title><![CDATA[How to Write Comments in React: The Good, the Bad and the Ugly]]></title><description><![CDATA[{/* Comment */} is the usual way to write comments in React. But there are 2 better ways to comment you just have to know.]]></description><link>https://dmitripavlutin.com/react-comments/</link><guid isPermaLink="false">https://dmitripavlutin.com/react-comments/</guid><category><![CDATA[react]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Fri, 21 Apr 2023 00:00:00 GMT</pubDate></item><item><title><![CDATA[4 Ways to Create an Enum in JavaScript]]></title><description><![CDATA[An enum is a set of named constants. The plain object, frozen object, proxied object or class-based are the 4 ways to create enums in JavaScript.]]></description><link>https://dmitripavlutin.com/javascript-enum/</link><guid isPermaLink="false">https://dmitripavlutin.com/javascript-enum/</guid><category><![CDATA[javascript]]></category><category><![CDATA[enum]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Fri, 14 Apr 2023 00:00:00 GMT</pubDate></item><item><title><![CDATA[React forwardRef(): How to Pass Refs to Child Components]]></title><description><![CDATA[React forwardRef() is a tool for passing refs to child components. Discover how to use it with ease in this comprehensive tutorial.]]></description><link>https://dmitripavlutin.com/react-forwardref/</link><guid isPermaLink="false">https://dmitripavlutin.com/react-forwardref/</guid><category><![CDATA[react]]></category><category><![CDATA[ref]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Thu, 06 Apr 2023 00:00:00 GMT</pubDate></item><item><title><![CDATA[TypeScript Function Types: A Beginner's Guide]]></title><description><![CDATA[Are you struggling to understand TypeScript function types? Look no further! This comprehensive guide covers everything you need to know.]]></description><link>https://dmitripavlutin.com/typescript-function-type/</link><guid isPermaLink="false">https://dmitripavlutin.com/typescript-function-type/</guid><category><![CDATA[typescript]]></category><category><![CDATA[function]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Tue, 28 Mar 2023 00:00:00 GMT</pubDate></item><item><title><![CDATA[How to Use v-model to Access Input Values in Vue]]></title><description><![CDATA[How to use v-model to bind form input elements like text input, textarea, select, checkbox, radio in Vue.]]></description><link>https://dmitripavlutin.com/vue-v-model-form-inputs/</link><guid isPermaLink="false">https://dmitripavlutin.com/vue-v-model-form-inputs/</guid><category><![CDATA[vue]]></category><category><![CDATA[v-model]]></category><category><![CDATA[input]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Fri, 17 Mar 2023 00:00:00 GMT</pubDate></item><item><title><![CDATA[Mastering Vue refs: From Zero to Hero]]></title><description><![CDATA[ref() is a Vue composition API function that creates refs: small reactive values.]]></description><link>https://dmitripavlutin.com/ref-in-vue/</link><guid isPermaLink="false">https://dmitripavlutin.com/ref-in-vue/</guid><category><![CDATA[vue]]></category><category><![CDATA[ref]]></category><category><![CDATA[reactivity]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Tue, 28 Feb 2023 00:00:00 GMT</pubDate></item><item><title><![CDATA[Environment Variables in JavaScript: process.env]]></title><description><![CDATA[How to access environment variables in JavaScript using process.env and expose them to the browser runtime using bundlers like Vite and webpack.]]></description><link>https://dmitripavlutin.com/environment-variables-javascript/</link><guid isPermaLink="false">https://dmitripavlutin.com/environment-variables-javascript/</guid><category><![CDATA[javascript]]></category><category><![CDATA[nodejs]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Wed, 08 Feb 2023 00:00:00 GMT</pubDate></item><item><title><![CDATA[5 Must-Know Differences Between ref() and reactive() in Vue]]></title><description><![CDATA[What are the main differences between ref() and reactive()? And when to use one or another?]]></description><link>https://dmitripavlutin.com/ref-reactive-differences-vue/</link><guid isPermaLink="false">https://dmitripavlutin.com/ref-reactive-differences-vue/</guid><category><![CDATA[vue]]></category><category><![CDATA[vue composition]]></category><category><![CDATA[reactivity]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Wed, 25 Jan 2023 00:00:00 GMT</pubDate></item><item><title><![CDATA[How to Destructure Props in Vue (Composition API)]]></title><description><![CDATA[How to correctly destructure props object in a Vue component while maintaining the reactivity.]]></description><link>https://dmitripavlutin.com/props-destructure-vue-composition/</link><guid isPermaLink="false">https://dmitripavlutin.com/props-destructure-vue-composition/</guid><category><![CDATA[vue]]></category><category><![CDATA[vue composition]]></category><category><![CDATA[props]]></category><category><![CDATA[reactivity]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Wed, 11 Jan 2023 00:00:00 GMT</pubDate></item><item><title><![CDATA[Triangulation in Test-Driven Development]]></title><description><![CDATA[How to use triangulation technique to guide the creation of generic code in test-driven development.]]></description><link>https://dmitripavlutin.com/triangulation-test-driven-development/</link><guid isPermaLink="false">https://dmitripavlutin.com/triangulation-test-driven-development/</guid><category><![CDATA[test-driven development]]></category><category><![CDATA[unit test]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Tue, 04 Oct 2022 00:00:00 GMT</pubDate></item><item><title><![CDATA[How to Use nextTick() in Vue]]></title><description><![CDATA[nextTick(callback) executes the callback when the DOM has been updated.]]></description><link>https://dmitripavlutin.com/vue-next-tick/</link><guid isPermaLink="false">https://dmitripavlutin.com/vue-next-tick/</guid><category><![CDATA[vue]]></category><category><![CDATA[dom]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Sat, 12 Feb 2022 00:00:00 GMT</pubDate></item><item><title><![CDATA[Programming to Interface Vs to Implementation]]></title><description><![CDATA[How programming to an interface can make your application easier to change in the future.]]></description><link>https://dmitripavlutin.com/interface-vs-implementation/</link><guid isPermaLink="false">https://dmitripavlutin.com/interface-vs-implementation/</guid><category><![CDATA[software design]]></category><category><![CDATA[interface]]></category><category><![CDATA[typescript]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Mon, 24 Jan 2022 00:00:00 GMT</pubDate></item><item><title><![CDATA[A Smarter JavaScript Mapper: array.flatMap()]]></title><description><![CDATA[array.flatMap() is a method on the array that let's you map elements a littler smarter.]]></description><link>https://dmitripavlutin.com/javascript-array-flatmap/</link><guid isPermaLink="false">https://dmitripavlutin.com/javascript-array-flatmap/</guid><category><![CDATA[javascript]]></category><category><![CDATA[array]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Fri, 31 Dec 2021 00:00:00 GMT</pubDate></item><item><title><![CDATA[Array Grouping in JavaScript: Object.groupBy()]]></title><description><![CDATA[Object.groupBy() and Object.groupByToMap() methods let you group an array by certain criteria.]]></description><link>https://dmitripavlutin.com/javascript-array-group/</link><guid isPermaLink="false">https://dmitripavlutin.com/javascript-array-group/</guid><category><![CDATA[javascript]]></category><category><![CDATA[array]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Mon, 20 Dec 2021 00:00:00 GMT</pubDate></item><item><title><![CDATA[How to Access ES Module Metadata using import.meta]]></title><description><![CDATA[How to access the meta information (module URL, etc.) of an ES module in JavaScript.]]></description><link>https://dmitripavlutin.com/javascript-import-meta/</link><guid isPermaLink="false">https://dmitripavlutin.com/javascript-import-meta/</guid><category><![CDATA[javascript]]></category><category><![CDATA[module]]></category><category><![CDATA[url]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Sun, 12 Dec 2021 00:00:00 GMT</pubDate></item><item><title><![CDATA[JSON Modules in JavaScript]]></title><description><![CDATA[How to import JSON data directly into an ES module.]]></description><link>https://dmitripavlutin.com/javascript-json-modules/</link><guid isPermaLink="false">https://dmitripavlutin.com/javascript-json-modules/</guid><category><![CDATA[javascript]]></category><category><![CDATA[json]]></category><category><![CDATA[module]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Fri, 03 Dec 2021 00:00:00 GMT</pubDate></item><item><title><![CDATA[How to Trim Strings in JavaScript]]></title><description><![CDATA[How to trim (aka remove whitespaces and line terminators) from strings in JavaScript.]]></description><link>https://dmitripavlutin.com/javascript-string-trim/</link><guid isPermaLink="false">https://dmitripavlutin.com/javascript-string-trim/</guid><category><![CDATA[javascript]]></category><category><![CDATA[string]]></category><category><![CDATA[whitespace]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Thu, 25 Nov 2021 09:00:00 GMT</pubDate></item><item><title><![CDATA[TypeScript Function Overloading]]></title><description><![CDATA[Function overloading in TypeScript lets you define functions that can be called in multiple ways.]]></description><link>https://dmitripavlutin.com/typescript-function-overloading/</link><guid isPermaLink="false">https://dmitripavlutin.com/typescript-function-overloading/</guid><category><![CDATA[typescript]]></category><category><![CDATA[function]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Thu, 18 Nov 2021 13:40:00 GMT</pubDate></item><item><title><![CDATA[How to Debounce and Throttle Callbacks in Vue]]></title><description><![CDATA[How to debounce and throttle watchers and event handlers in Vue components.]]></description><link>https://dmitripavlutin.com/vue-debounce-throttle/</link><guid isPermaLink="false">https://dmitripavlutin.com/vue-debounce-throttle/</guid><category><![CDATA[vue]]></category><category><![CDATA[callback]]></category><category><![CDATA[event]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Fri, 12 Nov 2021 07:30:00 GMT</pubDate></item><item><title><![CDATA[How to Show/Hide Elements in Vue]]></title><description><![CDATA[How to use v-if, v-show and :class to show/hide elements in Vue.]]></description><link>https://dmitripavlutin.com/vue-show-hide-elements/</link><guid isPermaLink="false">https://dmitripavlutin.com/vue-show-hide-elements/</guid><category><![CDATA[vue]]></category><category><![CDATA[dom]]></category><category><![CDATA[element]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Wed, 03 Nov 2021 09:20:00 GMT</pubDate></item><item><title><![CDATA[Sparse vs Dense Arrays in JavaScript]]></title><description><![CDATA[What's the difference between sparse and dence arrays in JavaScript]]></description><link>https://dmitripavlutin.com/javascript-sparse-dense-arrays/</link><guid isPermaLink="false">https://dmitripavlutin.com/javascript-sparse-dense-arrays/</guid><category><![CDATA[javascript]]></category><category><![CDATA[array]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Wed, 27 Oct 2021 07:00:00 GMT</pubDate></item><item><title><![CDATA[How to Fill an Array with Initial Values in JavaScript]]></title><description><![CDATA[How to initialize an array with initial values in JavaScript using array.fill(), Array.from(), or array.map()]]></description><link>https://dmitripavlutin.com/javascript-fill-array/</link><guid isPermaLink="false">https://dmitripavlutin.com/javascript-fill-array/</guid><category><![CDATA[javascript]]></category><category><![CDATA[array]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Tue, 19 Oct 2021 06:00:00 GMT</pubDate></item><item><title><![CDATA[Covariance and Contravariance in TypeScript]]></title><description><![CDATA[Covariance and contravariance are the concepts behind the subtyping of composable types.]]></description><link>https://dmitripavlutin.com/typescript-covariance-contravariance/</link><guid isPermaLink="false">https://dmitripavlutin.com/typescript-covariance-contravariance/</guid><category><![CDATA[typescript]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Thu, 14 Oct 2021 12:00:00 GMT</pubDate></item><item><title><![CDATA[What are Higher-Order Functions in JavaScript?]]></title><description><![CDATA[The higher-order function accept as arguments or return other functions.]]></description><link>https://dmitripavlutin.com/javascript-higher-order-functions/</link><guid isPermaLink="false">https://dmitripavlutin.com/javascript-higher-order-functions/</guid><category><![CDATA[javascript]]></category><category><![CDATA[function]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Thu, 07 Oct 2021 10:00:00 GMT</pubDate></item><item><title><![CDATA[How to Use TypeScript with React Components]]></title><description><![CDATA[How to use TypeScript to type React components: validate props, mark props as optional.]]></description><link>https://dmitripavlutin.com/typescript-react-components/</link><guid isPermaLink="false">https://dmitripavlutin.com/typescript-react-components/</guid><category><![CDATA[typescript]]></category><category><![CDATA[react]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Wed, 29 Sep 2021 15:00:00 GMT</pubDate></item><item><title><![CDATA[Index Signatures in TypeScript]]></title><description><![CDATA[Index signatures in TypeScript let's you annotate objects of unknown structure.]]></description><link>https://dmitripavlutin.com/typescript-index-signatures/</link><guid isPermaLink="false">https://dmitripavlutin.com/typescript-index-signatures/</guid><category><![CDATA[typescript]]></category><category><![CDATA[object]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Wed, 22 Sep 2021 18:10:00 GMT</pubDate></item><item><title><![CDATA[How to Use React useReducer() Hook]]></title><description><![CDATA[How to use useReducer() hook to manage complex state: initial state, action object, dispatch, reducer in React.]]></description><link>https://dmitripavlutin.com/react-usereducer/</link><guid isPermaLink="false">https://dmitripavlutin.com/react-usereducer/</guid><category><![CDATA[react]]></category><category><![CDATA[usereducer]]></category><category><![CDATA[hook]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Wed, 15 Sep 2021 15:20:00 GMT</pubDate></item><item><title><![CDATA[unknown vs any in TypeScript]]></title><description><![CDATA[What is the difference between unknown and any types in TypeScript.]]></description><link>https://dmitripavlutin.com/typescript-unknown-vs-any/</link><guid isPermaLink="false">https://dmitripavlutin.com/typescript-unknown-vs-any/</guid><category><![CDATA[typescript]]></category><category><![CDATA[unknown]]></category><category><![CDATA[any]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Wed, 08 Sep 2021 13:00:00 GMT</pubDate></item><item><title><![CDATA[A Guide to React Context and useContext() Hook]]></title><description><![CDATA[The React context provides data to components no matter how deep they are in the components hierarchy.]]></description><link>https://dmitripavlutin.com/react-context-and-usecontext/</link><guid isPermaLink="false">https://dmitripavlutin.com/react-context-and-usecontext/</guid><category><![CDATA[react]]></category><category><![CDATA[context]]></category><category><![CDATA[hook]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Thu, 02 Sep 2021 11:00:00 GMT</pubDate></item><item><title><![CDATA[How to Use Promise.any()]]></title><description><![CDATA[How to use the Promise.any() to get the first fulfilled promise from an array of promises.]]></description><link>https://dmitripavlutin.com/promise-any/</link><guid isPermaLink="false">https://dmitripavlutin.com/promise-any/</guid><category><![CDATA[javascript]]></category><category><![CDATA[promise]]></category><category><![CDATA[async]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Thu, 26 Aug 2021 11:10:00 GMT</pubDate></item><item><title><![CDATA[2 Ways to Remove a Property from an Object in JavaScript]]></title><description><![CDATA[How to remove properties from an object in JavaScript using the delete operator or object destructuring with rest syntax.]]></description><link>https://dmitripavlutin.com/remove-object-property-javascript/</link><guid isPermaLink="false">https://dmitripavlutin.com/remove-object-property-javascript/</guid><category><![CDATA[javascript]]></category><category><![CDATA[object]]></category><category><![CDATA[property]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Tue, 17 Aug 2021 12:00:00 GMT</pubDate></item><item><title><![CDATA['return await promise' vs 'return promise' in JavaScript]]></title><description><![CDATA[Is there any difference between using 'return await promise' and 'return promise' in asynchronous JavaScript functions?]]></description><link>https://dmitripavlutin.com/return-await-promise-javascript/</link><guid isPermaLink="false">https://dmitripavlutin.com/return-await-promise-javascript/</guid><category><![CDATA[javascript]]></category><category><![CDATA[promise]]></category><category><![CDATA[async]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Tue, 10 Aug 2021 06:40:00 GMT</pubDate></item><item><title><![CDATA[How to Use Promise.allSettled()]]></title><description><![CDATA[How to use Promise.allSettled() to perform parallel async operations and collect the promises statuses into an array.]]></description><link>https://dmitripavlutin.com/promise-all-settled/</link><guid isPermaLink="false">https://dmitripavlutin.com/promise-all-settled/</guid><category><![CDATA[javascript]]></category><category><![CDATA[promise]]></category><category><![CDATA[async]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Tue, 03 Aug 2021 07:40:00 GMT</pubDate></item><item><title><![CDATA[How to Use fetch() with JSON]]></title><description><![CDATA[How to use fetch() API to load and post JSON data.]]></description><link>https://dmitripavlutin.com/fetch-with-json/</link><guid isPermaLink="false">https://dmitripavlutin.com/fetch-with-json/</guid><category><![CDATA[fetch]]></category><category><![CDATA[json]]></category><category><![CDATA[javascript]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Wed, 28 Jul 2021 08:20:00 GMT</pubDate></item><item><title><![CDATA[JavaScript Promises: then(f,f) vs then(f).catch(f)]]></title><description><![CDATA[What's the difference between promise.then(fn, fn) and promise.then(fn).catch(fn) when using JavaScript promises?]]></description><link>https://dmitripavlutin.com/javascript-promises-then-vs-then-catch/</link><guid isPermaLink="false">https://dmitripavlutin.com/javascript-promises-then-vs-then-catch/</guid><category><![CDATA[javascript]]></category><category><![CDATA[promise]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Wed, 21 Jul 2021 08:30:00 GMT</pubDate></item><item><title><![CDATA[What is a Promise in JavaScript?]]></title><description><![CDATA[The post that I had wanted to read myself to understand promises.]]></description><link>https://dmitripavlutin.com/what-is-javascript-promise/</link><guid isPermaLink="false">https://dmitripavlutin.com/what-is-javascript-promise/</guid><category><![CDATA[javascript]]></category><category><![CDATA[promise]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Thu, 15 Jul 2021 08:00:00 GMT</pubDate></item><item><title><![CDATA[How to Use Promise.all()]]></title><description><![CDATA[How to use Promise.all() to perform parallel async operations in a fail-fast manner.]]></description><link>https://dmitripavlutin.com/promise-all/</link><guid isPermaLink="false">https://dmitripavlutin.com/promise-all/</guid><category><![CDATA[javascript]]></category><category><![CDATA[promise]]></category><category><![CDATA[async]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Tue, 06 Jul 2021 07:00:00 GMT</pubDate></item><item><title><![CDATA[A Simple Guide to Component Props in React]]></title><description><![CDATA[In this guide you'll find what are component props in React and how to use them.]]></description><link>https://dmitripavlutin.com/react-props/</link><guid isPermaLink="false">https://dmitripavlutin.com/react-props/</guid><category><![CDATA[react]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Fri, 02 Jul 2021 12:00:00 GMT</pubDate></item><item><title><![CDATA[Don't Stop Me Now: How to Use React useTransition() hook]]></title><description><![CDATA[How to speed up UI updates by prioritizing updates using React useTranstion() hook.]]></description><link>https://dmitripavlutin.com/react-usetransition/</link><guid isPermaLink="false">https://dmitripavlutin.com/react-usetransition/</guid><category><![CDATA[react]]></category><category><![CDATA[usetransition]]></category><category><![CDATA[hook]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Wed, 23 Jun 2021 09:00:00 GMT</pubDate></item><item><title><![CDATA[A Simple Explanation of JavaScript Variables: const, let, var]]></title><description><![CDATA[How to declare, initialize, assign and read JavaScript variables using const, let and var statements.]]></description><link>https://dmitripavlutin.com/javascript-variables-const-let-var/</link><guid isPermaLink="false">https://dmitripavlutin.com/javascript-variables-const-let-var/</guid><category><![CDATA[javascript]]></category><category><![CDATA[variable]]></category><category><![CDATA[const]]></category><category><![CDATA[let]]></category><category><![CDATA[var]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Wed, 16 Jun 2021 10:00:00 GMT</pubDate></item><item><title><![CDATA[ES Modules Dynamic Import]]></title><description><![CDATA[How to use import(pathToModule) to dynamically import ES (ECMAScript) modules in JavaScript.]]></description><link>https://dmitripavlutin.com/ecmascript-modules-dynamic-import/</link><guid isPermaLink="false">https://dmitripavlutin.com/ecmascript-modules-dynamic-import/</guid><category><![CDATA[javascript]]></category><category><![CDATA[module]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Thu, 10 Jun 2021 18:40:00 GMT</pubDate></item><item><title><![CDATA[How to Memoize with React.useMemo()]]></title><description><![CDATA[How and when to use React.useMemo() hook to improve the performance of React components.]]></description><link>https://dmitripavlutin.com/react-usememo-hook/</link><guid isPermaLink="false">https://dmitripavlutin.com/react-usememo-hook/</guid><category><![CDATA[react]]></category><category><![CDATA[usememo]]></category><category><![CDATA[hook]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Fri, 04 Jun 2021 13:00:00 GMT</pubDate></item><item><title><![CDATA[How to Cleanup Async Effects in React]]></title><description><![CDATA[How to correctly cleanup async side-effects in React when the component unmounts or updates.]]></description><link>https://dmitripavlutin.com/react-cleanup-async-effects/</link><guid isPermaLink="false">https://dmitripavlutin.com/react-cleanup-async-effects/</guid><category><![CDATA[react]]></category><category><![CDATA[async]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Tue, 25 May 2021 07:30:00 GMT</pubDate></item><item><title><![CDATA[Why Math.max() Without Arguments Returns -Infinity]]></title><description><![CDATA[What is the reason that Math.max() utility function when being called without arguments returns -Infinity.]]></description><link>https://dmitripavlutin.com/javascript-math-max-infinity/</link><guid isPermaLink="false">https://dmitripavlutin.com/javascript-math-max-infinity/</guid><category><![CDATA[javascript]]></category><category><![CDATA[number]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Tue, 18 May 2021 12:30:00 GMT</pubDate></item><item><title><![CDATA[How to Debounce and Throttle Callbacks in React]]></title><description><![CDATA[How to debounce and throttle callbacks in React using useCallback() and useMemo() hooks.]]></description><link>https://dmitripavlutin.com/react-throttle-debounce/</link><guid isPermaLink="false">https://dmitripavlutin.com/react-throttle-debounce/</guid><category><![CDATA[react]]></category><category><![CDATA[callback]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Tue, 11 May 2021 07:40:00 GMT</pubDate></item><item><title><![CDATA[Don't Confuse Function Expressions and Function Declarations in JavaScript]]></title><description><![CDATA[What are the differences between function declarations and function expressions in JavaScript.]]></description><link>https://dmitripavlutin.com/javascript-function-expressions-and-declarations/</link><guid isPermaLink="false">https://dmitripavlutin.com/javascript-function-expressions-and-declarations/</guid><category><![CDATA[javascript]]></category><category><![CDATA[function]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Tue, 04 May 2021 07:50:00 GMT</pubDate></item><item><title><![CDATA[How to Use ES Modules in Node.js]]></title><description><![CDATA[How to Use ES (ECMAScript) Modules in Node.js environment.]]></description><link>https://dmitripavlutin.com/ecmascript-modules-nodejs/</link><guid isPermaLink="false">https://dmitripavlutin.com/ecmascript-modules-nodejs/</guid><category><![CDATA[javascript]]></category><category><![CDATA[module]]></category><category><![CDATA[nodejs]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Tue, 27 Apr 2021 09:00:00 GMT</pubDate></item><item><title><![CDATA[Solving a Mystery Behavior of parseInt() in JavaScript]]></title><description><![CDATA[Solving a mystery of how parseInt() parses small float numbers in JavaScript.]]></description><link>https://dmitripavlutin.com/parseint-mystery-javascript/</link><guid isPermaLink="false">https://dmitripavlutin.com/parseint-mystery-javascript/</guid><category><![CDATA[javascript]]></category><category><![CDATA[number]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Tue, 20 Apr 2021 07:00:00 GMT</pubDate></item><item><title><![CDATA[How to Use Array Reduce Method in JavaScript]]></title><description><![CDATA[What is a reduce operation and how to use array.reduce() method to perform the reduce operation on arrays.]]></description><link>https://dmitripavlutin.com/javascript-array-reduce/</link><guid isPermaLink="false">https://dmitripavlutin.com/javascript-array-reduce/</guid><category><![CDATA[javascript]]></category><category><![CDATA[array]]></category><category><![CDATA[reduce]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Tue, 13 Apr 2021 07:30:00 GMT</pubDate></item><item><title><![CDATA[3 Ways to Merge Arrays in JavaScript]]></title><description><![CDATA[How to merge arrays in JavaScript using spread operator, array.concat(), and array.push().]]></description><link>https://dmitripavlutin.com/javascript-merge-arrays/</link><guid isPermaLink="false">https://dmitripavlutin.com/javascript-merge-arrays/</guid><category><![CDATA[javascript]]></category><category><![CDATA[array]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Tue, 06 Apr 2021 06:30:00 GMT</pubDate></item><item><title><![CDATA[A Guide to Jotai: the Minimalist React State Management Library]]></title><description><![CDATA[How to manage global state in React using the minimalist but flexible Jotai library.]]></description><link>https://dmitripavlutin.com/react-jotai-state-management/</link><guid isPermaLink="false">https://dmitripavlutin.com/react-jotai-state-management/</guid><category><![CDATA[react]]></category><category><![CDATA[state]]></category><category><![CDATA[open source]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Tue, 30 Mar 2021 08:15:00 GMT</pubDate></item><item><title><![CDATA[The Difference Between Values and References in JavaScript]]></title><description><![CDATA[What is the difference between passing by value and passing by reference in JavaScript.]]></description><link>https://dmitripavlutin.com/value-vs-reference-javascript/</link><guid isPermaLink="false">https://dmitripavlutin.com/value-vs-reference-javascript/</guid><category><![CDATA[javascript]]></category><category><![CDATA[object]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Tue, 23 Mar 2021 11:10:00 GMT</pubDate></item><item><title><![CDATA[How to Implement a Queue in JavaScript]]></title><description><![CDATA[The guide on how to implement a queue data structure in JavaScript.]]></description><link>https://dmitripavlutin.com/javascript-queue/</link><guid isPermaLink="false">https://dmitripavlutin.com/javascript-queue/</guid><category><![CDATA[javascript]]></category><category><![CDATA[computer science]]></category><category><![CDATA[data structure]]></category><category><![CDATA[queue]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Tue, 16 Mar 2021 12:30:00 GMT</pubDate></item><item><title><![CDATA[A Helpful Algorithm to Determine "this" value in JavaScript]]></title><description><![CDATA[Struggle finding "this" value? I have created an universal algorithm to help you find "this" in any situation.]]></description><link>https://dmitripavlutin.com/javascript-this-algorithm/</link><guid isPermaLink="false">https://dmitripavlutin.com/javascript-this-algorithm/</guid><category><![CDATA[javascript]]></category><category><![CDATA[this]]></category><category><![CDATA[function]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Tue, 09 Mar 2021 11:00:00 GMT</pubDate></item><item><title><![CDATA[React useRef() Hook Explained in 3 Steps]]></title><description><![CDATA[React.useRef() hook creates persisted mutable values (aka references or refs). refs are used to access DOM elements.]]></description><link>https://dmitripavlutin.com/react-useref/</link><guid isPermaLink="false">https://dmitripavlutin.com/react-useref/</guid><category><![CDATA[react]]></category><category><![CDATA[useref]]></category><category><![CDATA[hook]]></category><category><![CDATA[dom]]></category><category><![CDATA[element]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Tue, 02 Mar 2021 12:00:00 GMT</pubDate></item><item><title><![CDATA[7 Interview Questions on "this" keyword in JavaScript. Can You Answer Them?]]></title><description><![CDATA[7 interview questions to challenge your knowledge on "this" keyword in JavaScript.]]></description><link>https://dmitripavlutin.com/javascript-this-interview-questions/</link><guid isPermaLink="false">https://dmitripavlutin.com/javascript-this-interview-questions/</guid><category><![CDATA[javascript]]></category><category><![CDATA[this]]></category><category><![CDATA[interview]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Tue, 23 Feb 2021 09:30:00 GMT</pubDate></item><item><title><![CDATA[How to Greatly Enhance fetch() with the Decorator Pattern]]></title><description><![CDATA[How to use the decorator pattern to enhance the possibilities and flexibily of fetch() API.]]></description><link>https://dmitripavlutin.com/enhance-fetch-with-decorator-pattern/</link><guid isPermaLink="false">https://dmitripavlutin.com/enhance-fetch-with-decorator-pattern/</guid><category><![CDATA[fetch]]></category><category><![CDATA[decorator]]></category><category><![CDATA[javascript]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Tue, 16 Feb 2021 09:10:00 GMT</pubDate></item><item><title><![CDATA[7 Interview Questions on JavaScript Closures. Can You Answer Them?]]></title><description><![CDATA[I compiled a list of 7 interesting and increasingly challenging questions on JavaScript closures. Can you answer them?]]></description><link>https://dmitripavlutin.com/javascript-closures-interview-questions/</link><guid isPermaLink="false">https://dmitripavlutin.com/javascript-closures-interview-questions/</guid><category><![CDATA[javascript]]></category><category><![CDATA[closure]]></category><category><![CDATA[interview]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Tue, 09 Feb 2021 11:30:00 GMT</pubDate></item><item><title><![CDATA[What's a Method in JavaScript?]]></title><description><![CDATA[A method is a function that belongs to an object and executed with that object as a context.]]></description><link>https://dmitripavlutin.com/javascript-method/</link><guid isPermaLink="false">https://dmitripavlutin.com/javascript-method/</guid><category><![CDATA[javascript]]></category><category><![CDATA[function]]></category><category><![CDATA[method]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Tue, 02 Feb 2021 10:30:00 GMT</pubDate></item><item><title><![CDATA[array.sort() Does Not Simply Sort Numbers in JavaScript]]></title><description><![CDATA[array.sort() method, when invoked without arguments, doesn't sort numbers as you might expect.]]></description><link>https://dmitripavlutin.com/javascript-array-sort-numbers/</link><guid isPermaLink="false">https://dmitripavlutin.com/javascript-array-sort-numbers/</guid><category><![CDATA[javascript]]></category><category><![CDATA[array]]></category><category><![CDATA[number]]></category><category><![CDATA[sort]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Tue, 26 Jan 2021 09:30:00 GMT</pubDate></item><item><title><![CDATA[How to Solve the Infinite Loop of React.useEffect()]]></title><description><![CDATA[Be careful when using React.useEffect() hook because it can generate infinite loops.]]></description><link>https://dmitripavlutin.com/react-useeffect-infinite-loop/</link><guid isPermaLink="false">https://dmitripavlutin.com/react-useeffect-infinite-loop/</guid><category><![CDATA[react]]></category><category><![CDATA[hook]]></category><category><![CDATA[useeffect]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Tue, 19 Jan 2021 00:00:00 GMT</pubDate></item><item><title><![CDATA[The New Array Method You'll Enjoy: array.at(index)]]></title><description><![CDATA[array.at(index) method in JavaScript accesses array items at positive and (finally!) at negative indexes.]]></description><link>https://dmitripavlutin.com/javascript-array-at/</link><guid isPermaLink="false">https://dmitripavlutin.com/javascript-array-at/</guid><category><![CDATA[javascript]]></category><category><![CDATA[array]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Tue, 12 Jan 2021 09:00:00 GMT</pubDate></item><item><title><![CDATA[What's the Difference between DOM Node and Element?]]></title><description><![CDATA[What's the difference between a DOM node and an element? Let's find out!]]></description><link>https://dmitripavlutin.com/dom-node-element/</link><guid isPermaLink="false">https://dmitripavlutin.com/dom-node-element/</guid><category><![CDATA[dom]]></category><category><![CDATA[node]]></category><category><![CDATA[element]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Tue, 05 Jan 2021 16:40:00 GMT</pubDate></item><item><title><![CDATA[Why Promises Are Faster Than setTimeout()?]]></title><description><![CDATA[Why an immidiately resolved promise is faster then an immediate timeout?]]></description><link>https://dmitripavlutin.com/javascript-promises-settimeout/</link><guid isPermaLink="false">https://dmitripavlutin.com/javascript-promises-settimeout/</guid><category><![CDATA[javascript]]></category><category><![CDATA[promise]]></category><category><![CDATA[event loop]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Tue, 29 Dec 2020 09:30:00 GMT</pubDate></item><item><title><![CDATA[Everything About Callback Functions in JavaScript]]></title><description><![CDATA[The callback is a function being called by another function, either synchronously or asynchronously.]]></description><link>https://dmitripavlutin.com/javascript-callback/</link><guid isPermaLink="false">https://dmitripavlutin.com/javascript-callback/</guid><category><![CDATA[javascript]]></category><category><![CDATA[function]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Tue, 22 Dec 2020 11:40:00 GMT</pubDate></item><item><title><![CDATA[How React Updates State]]></title><description><![CDATA[If you're updating the state of a React component, expect the state variable to receive the new value on the next rendering.]]></description><link>https://dmitripavlutin.com/how-react-updates-state/</link><guid isPermaLink="false">https://dmitripavlutin.com/how-react-updates-state/</guid><category><![CDATA[react]]></category><category><![CDATA[hook]]></category><category><![CDATA[usestate]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Tue, 15 Dec 2020 12:30:00 GMT</pubDate></item><item><title><![CDATA[5 Mistakes to Avoid When Using React Hooks]]></title><description><![CDATA[Common mistakes and anti-patterns to avoid when using React hooks.]]></description><link>https://dmitripavlutin.com/react-hooks-mistakes-to-avoid/</link><guid isPermaLink="false">https://dmitripavlutin.com/react-hooks-mistakes-to-avoid/</guid><category><![CDATA[react]]></category><category><![CDATA[hook]]></category><category><![CDATA[useeffect]]></category><category><![CDATA[usestate]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Tue, 08 Dec 2020 11:10:00 GMT</pubDate></item><item><title><![CDATA[5 Best Practices to Write Quality JavaScript Variables]]></title><description><![CDATA[5 best practices on how to write quality JavaScript variables: prefer const, minimize scope, close to use place, and more.]]></description><link>https://dmitripavlutin.com/javascript-variables-best-practices/</link><guid isPermaLink="false">https://dmitripavlutin.com/javascript-variables-best-practices/</guid><category><![CDATA[javascript]]></category><category><![CDATA[variable]]></category><category><![CDATA[clean code]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Tue, 01 Dec 2020 08:30:00 GMT</pubDate></item><item><title><![CDATA[Type checking in JavaScript: typeof and instanceof operators]]></title><description><![CDATA[How to perform type checking in JavaScript using typeof and instanceof operators.]]></description><link>https://dmitripavlutin.com/javascript-typeof-instanceof/</link><guid isPermaLink="false">https://dmitripavlutin.com/javascript-typeof-instanceof/</guid><category><![CDATA[javascript]]></category><category><![CDATA[typeof]]></category><category><![CDATA[instanceof]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Tue, 24 Nov 2020 08:30:00 GMT</pubDate></item><item><title><![CDATA[3 Ways to Check if a Variable is Defined in JavaScript]]></title><description><![CDATA[How to check if a variable is defined in JavaScript using typeof operator, try/catch blocks, or window.hasOwnProperty().]]></description><link>https://dmitripavlutin.com/javascript-defined-variable-checking/</link><guid isPermaLink="false">https://dmitripavlutin.com/javascript-defined-variable-checking/</guid><category><![CDATA[javascript]]></category><category><![CDATA[variable]]></category><category><![CDATA[undefined]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Tue, 17 Nov 2020 09:00:00 GMT</pubDate></item><item><title><![CDATA[React Forms Tutorial: Access Input Values, Validate, Submit Forms]]></title><description><![CDATA[A step by step tutorial on how to access input values, validate, and submit forms in React.]]></description><link>https://dmitripavlutin.com/react-forms-tutorial/</link><guid isPermaLink="false">https://dmitripavlutin.com/react-forms-tutorial/</guid><category><![CDATA[react]]></category><category><![CDATA[form]]></category><category><![CDATA[input]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Tue, 10 Nov 2020 10:00:00 GMT</pubDate></item><item><title><![CDATA[Prototypal Inheritance in JavaScript]]></title><description><![CDATA[The guide on prototypal inheritance in JavaScript: prototype object, inherited propertes, chain of prototypes.]]></description><link>https://dmitripavlutin.com/javascript-prototypal-inheritance/</link><guid isPermaLink="false">https://dmitripavlutin.com/javascript-prototypal-inheritance/</guid><category><![CDATA[javascript]]></category><category><![CDATA[prototype]]></category><category><![CDATA[inheritance]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Tue, 03 Nov 2020 10:00:00 GMT</pubDate></item><item><title><![CDATA[How to Timeout a fetch() Request]]></title><description><![CDATA[How to use setTimeout(), the abort controller, and fetch() API to make requests with a configurable timeout.]]></description><link>https://dmitripavlutin.com/timeout-fetch-request/</link><guid isPermaLink="false">https://dmitripavlutin.com/timeout-fetch-request/</guid><category><![CDATA[javascript]]></category><category><![CDATA[fetch]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Tue, 27 Oct 2020 09:00:00 GMT</pubDate></item><item><title><![CDATA[How to Learn JavaScript If You're a Beginner]]></title><description><![CDATA[In this post I share my experience on how to learn JavaScript efficiently and stay motivated in the process.]]></description><link>https://dmitripavlutin.com/how-to-learn-javascript/</link><guid isPermaLink="false">https://dmitripavlutin.com/how-to-learn-javascript/</guid><category><![CDATA[javascript]]></category><category><![CDATA[craftsmanship]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Tue, 20 Oct 2020 11:30:00 GMT</pubDate></item><item><title><![CDATA[A Simple Explanation of React.useEffect()]]></title><description><![CDATA[useEffect() hook executes side-effects in React components.]]></description><link>https://dmitripavlutin.com/react-useeffect-explanation/</link><guid isPermaLink="false">https://dmitripavlutin.com/react-useeffect-explanation/</guid><category><![CDATA[react]]></category><category><![CDATA[hook]]></category><category><![CDATA[useeffect]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Tue, 13 Oct 2020 08:50:00 GMT</pubDate></item><item><title><![CDATA[A Simple Explanation of JavaScript Iterators]]></title><description><![CDATA[What are iterators and iterables in JavaScript and how to use them to iterate collections.]]></description><link>https://dmitripavlutin.com/javascript-iterators/</link><guid isPermaLink="false">https://dmitripavlutin.com/javascript-iterators/</guid><category><![CDATA[javascript]]></category><category><![CDATA[iterable]]></category><category><![CDATA[iterator]]></category><category><![CDATA[array]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Tue, 06 Oct 2020 08:30:00 GMT</pubDate></item><item><title><![CDATA[How to Use React Controlled Inputs]]></title><description><![CDATA[How to implement controlled inputs using hooks in React.]]></description><link>https://dmitripavlutin.com/controlled-inputs-using-react-hooks/</link><guid isPermaLink="false">https://dmitripavlutin.com/controlled-inputs-using-react-hooks/</guid><category><![CDATA[react]]></category><category><![CDATA[input]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Tue, 29 Sep 2020 07:20:00 GMT</pubDate></item><item><title><![CDATA[Everything about null in JavaScript]]></title><description><![CDATA[null in JavaScript is a special value  that represents a missing object.]]></description><link>https://dmitripavlutin.com/javascript-null/</link><guid isPermaLink="false">https://dmitripavlutin.com/javascript-null/</guid><category><![CDATA[javascript]]></category><category><![CDATA[null]]></category><category><![CDATA[object]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Tue, 22 Sep 2020 06:30:00 GMT</pubDate></item><item><title><![CDATA[How to Use Fetch with async/await]]></title><description><![CDATA[How to use fetch() with async/await syntax in JavaScript: fetch JSON data, handle errors, make parallel requests, cancel requests.]]></description><link>https://dmitripavlutin.com/javascript-fetch-async-await/</link><guid isPermaLink="false">https://dmitripavlutin.com/javascript-fetch-async-await/</guid><category><![CDATA[fetch]]></category><category><![CDATA[async await]]></category><category><![CDATA[javascript]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Tue, 15 Sep 2020 08:40:00 GMT</pubDate></item><item><title><![CDATA[Getting Started with Arrow Functions in JavaScript]]></title><description><![CDATA[I'm going to explain, in 5 easy steps, how to use arrow functions in JavaScript. ]]></description><link>https://dmitripavlutin.com/javascript-arrow-functions/</link><guid isPermaLink="false">https://dmitripavlutin.com/javascript-arrow-functions/</guid><category><![CDATA[javascript]]></category><category><![CDATA[arrow function]]></category><category><![CDATA[function]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Tue, 08 Sep 2020 07:50:00 GMT</pubDate></item><item><title><![CDATA[An Interesting Explanation of async/await in JavaScript]]></title><description><![CDATA[Let's learn async/await syntax in JavaScript by following a few interesting examples.]]></description><link>https://dmitripavlutin.com/javascript-async-await/</link><guid isPermaLink="false">https://dmitripavlutin.com/javascript-async-await/</guid><category><![CDATA[javascript]]></category><category><![CDATA[async await]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Tue, 01 Sep 2020 08:10:00 GMT</pubDate></item><item><title><![CDATA[Front-end Architecture: Stable and Volatile Dependencies]]></title><description><![CDATA[Designing correctly the dependencies, both stable and volatile ones, is an important skill to architect Front-end applications.]]></description><link>https://dmitripavlutin.com/frontend-architecture-stable-and-volatile-dependencies/</link><guid isPermaLink="false">https://dmitripavlutin.com/frontend-architecture-stable-and-volatile-dependencies/</guid><category><![CDATA[software design]]></category><category><![CDATA[dependency]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Tue, 25 Aug 2020 07:50:00 GMT</pubDate></item><item><title><![CDATA[Is it Safe to Compare JavaScript Strings?]]></title><description><![CDATA[2 similar-looking strings in JavaScript might not be equal... so how would you safely compare strings?]]></description><link>https://dmitripavlutin.com/compare-javascript-strings/</link><guid isPermaLink="false">https://dmitripavlutin.com/compare-javascript-strings/</guid><category><![CDATA[javascript]]></category><category><![CDATA[equality]]></category><category><![CDATA[string]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Tue, 18 Aug 2020 10:15:00 GMT</pubDate></item><item><title><![CDATA[How to Access Object's Keys, Values, and Entries in JavaScript]]></title><description><![CDATA[Let's see what utility functions provide JavaScript to extract the keys, values and entries from an object.]]></description><link>https://dmitripavlutin.com/access-object-keys-values-entries/</link><guid isPermaLink="false">https://dmitripavlutin.com/access-object-keys-values-entries/</guid><category><![CDATA[javascript]]></category><category><![CDATA[object]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Tue, 11 Aug 2020 07:30:00 GMT</pubDate></item><item><title><![CDATA[What Actually is a String in JavaScript?]]></title><description><![CDATA[Strictly saying, a string in JavaScript is a sequence of UTF-16 code units.]]></description><link>https://dmitripavlutin.com/what-is-string-in-javascript/</link><guid isPermaLink="false">https://dmitripavlutin.com/what-is-string-in-javascript/</guid><category><![CDATA[javascript]]></category><category><![CDATA[string]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Tue, 04 Aug 2020 07:00:00 GMT</pubDate></item><item><title><![CDATA[3 Ways to Shallow Clone Objects in JavaScript (w/ bonuses)]]></title><description><![CDATA[In this post, you’ll find 3 ways to perform shallow clone (aka copy) of objects in JavaScript.]]></description><link>https://dmitripavlutin.com/javascript-shallow-clone-objects/</link><guid isPermaLink="false">https://dmitripavlutin.com/javascript-shallow-clone-objects/</guid><category><![CDATA[javascript]]></category><category><![CDATA[object]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Tue, 28 Jul 2020 11:00:00 GMT</pubDate></item><item><title><![CDATA[Checking if an Array Contains a Value in JavaScript]]></title><description><![CDATA[How to determine if a JavaScript array contains a particular value, being a primitive or object.  ]]></description><link>https://dmitripavlutin.com/javascript-array-contains-value/</link><guid isPermaLink="false">https://dmitripavlutin.com/javascript-array-contains-value/</guid><category><![CDATA[javascript]]></category><category><![CDATA[array]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Tue, 21 Jul 2020 11:00:00 GMT</pubDate></item><item><title><![CDATA[JavaScript Event Delegation: A Beginner's Guide]]></title><description><![CDATA[The event delegation is an useful pattern to listen for events on multiple elements using just one event listener.]]></description><link>https://dmitripavlutin.com/javascript-event-delegation/</link><guid isPermaLink="false">https://dmitripavlutin.com/javascript-event-delegation/</guid><category><![CDATA[javascript]]></category><category><![CDATA[event delegation]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Tue, 14 Jul 2020 07:10:00 GMT</pubDate></item><item><title><![CDATA[How to Parse URL in JavaScript: hostname, pathname, query, hash]]></title><description><![CDATA[How to easily parse URL in JavaScript and access components like hostname, pathname, query, or hash.]]></description><link>https://dmitripavlutin.com/parse-url-javascript/</link><guid isPermaLink="false">https://dmitripavlutin.com/parse-url-javascript/</guid><category><![CDATA[javascript]]></category><category><![CDATA[url]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Tue, 07 Jul 2020 06:30:00 GMT</pubDate></item><item><title><![CDATA[3 Ways to Detect an Array in JavaScript]]></title><description><![CDATA[3 ways to check if a value is an array in JavaScript: Array.isArray(), instanceof Array and toString() === '[object Array]'.]]></description><link>https://dmitripavlutin.com/is-array-javascript/</link><guid isPermaLink="false">https://dmitripavlutin.com/is-array-javascript/</guid><category><![CDATA[javascript]]></category><category><![CDATA[array]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Tue, 30 Jun 2020 05:40:00 GMT</pubDate></item><item><title><![CDATA[How to Get the Screen, Window, and Web Page Sizes in JavaScript]]></title><description><![CDATA[How to get the screen, browser window, and web page sizes (width and height) in JavaScript.]]></description><link>https://dmitripavlutin.com/screen-window-page-sizes/</link><guid isPermaLink="false">https://dmitripavlutin.com/screen-window-page-sizes/</guid><category><![CDATA[browser]]></category><category><![CDATA[window]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Tue, 23 Jun 2020 06:50:00 GMT</pubDate></item><item><title><![CDATA[3 Ways to Check If an Object Has a Property/Key in JavaScript]]></title><description><![CDATA[The 3 ways to check if an object has a property or key in JavaScript: hasOwnProperty() method, in operator, comparing with undefined.]]></description><link>https://dmitripavlutin.com/check-if-object-has-property-javascript/</link><guid isPermaLink="false">https://dmitripavlutin.com/check-if-object-has-property-javascript/</guid><category><![CDATA[javascript]]></category><category><![CDATA[object]]></category><category><![CDATA[property]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Tue, 16 Jun 2020 09:00:00 GMT</pubDate></item><item><title><![CDATA[How to Compare Objects in JavaScript]]></title><description><![CDATA[How to compare objects in JavaScript: referential, manual, shallow, and deep equality.]]></description><link>https://dmitripavlutin.com/how-to-compare-objects-in-javascript/</link><guid isPermaLink="false">https://dmitripavlutin.com/how-to-compare-objects-in-javascript/</guid><category><![CDATA[javascript]]></category><category><![CDATA[equality]]></category><category><![CDATA[object]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Mon, 08 Jun 2020 08:00:00 GMT</pubDate></item><item><title><![CDATA[Object.is() vs Strict Equality Operator in JavaScript]]></title><description><![CDATA[When should you use Object.is() instead of strict equality check in JavaScript?]]></description><link>https://dmitripavlutin.com/object-is-vs-strict-equality-operator/</link><guid isPermaLink="false">https://dmitripavlutin.com/object-is-vs-strict-equality-operator/</guid><category><![CDATA[javascript]]></category><category><![CDATA[equality]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Sun, 31 May 2020 13:00:00 GMT</pubDate></item><item><title><![CDATA[Own and Inherited Properties in JavaScript]]></title><description><![CDATA[Knowing the difference between own and inherited properties helps understanding the JavaScript prototypal inheritance.]]></description><link>https://dmitripavlutin.com/own-and-inherited-properties-in-javascript/</link><guid isPermaLink="false">https://dmitripavlutin.com/own-and-inherited-properties-in-javascript/</guid><category><![CDATA[javascript]]></category><category><![CDATA[prototype]]></category><category><![CDATA[inheritance]]></category><category><![CDATA[object]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Sun, 24 May 2020 18:00:00 GMT</pubDate></item><item><title><![CDATA[5 Differences Between Arrow and Regular Functions]]></title><description><![CDATA[The 5 must-know differences between arrow and regular functions in JavaScript.]]></description><link>https://dmitripavlutin.com/differences-between-arrow-and-regular-functions/</link><guid isPermaLink="false">https://dmitripavlutin.com/differences-between-arrow-and-regular-functions/</guid><category><![CDATA[javascript]]></category><category><![CDATA[function]]></category><category><![CDATA[arrow function]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Sat, 16 May 2020 12:00:00 GMT</pubDate></item><item><title><![CDATA[How to Use Object Destructuring in JavaScript]]></title><description><![CDATA[Object destructuring is a JavaScript feature to extract properties from objects and bind them to variables.]]></description><link>https://dmitripavlutin.com/javascript-object-destructuring/</link><guid isPermaLink="false">https://dmitripavlutin.com/javascript-object-destructuring/</guid><category><![CDATA[javascript]]></category><category><![CDATA[destructuring]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Sun, 10 May 2020 13:40:00 GMT</pubDate></item><item><title><![CDATA[Your Guide to React.useCallback()]]></title><description><![CDATA[React.useCallback() memoizes callback functions.]]></description><link>https://dmitripavlutin.com/react-usecallback/</link><guid isPermaLink="false">https://dmitripavlutin.com/react-usecallback/</guid><category><![CDATA[react]]></category><category><![CDATA[memoization]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Mon, 04 May 2020 08:40:00 GMT</pubDate></item><item><title><![CDATA[5 JavaScript Scope Gotchas]]></title><description><![CDATA[5 situations when the JavaScript scope behaves differently than you expect.]]></description><link>https://dmitripavlutin.com/javascript-scope-gotchas/</link><guid isPermaLink="false">https://dmitripavlutin.com/javascript-scope-gotchas/</guid><category><![CDATA[javascript]]></category><category><![CDATA[scope]]></category><category><![CDATA[variable]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Sun, 26 Apr 2020 17:30:00 GMT</pubDate></item><item><title><![CDATA[A Simple Explanation of Scope in JavaScript]]></title><description><![CDATA[The scope is an important concent that manages variables accessibility. I will explain step by step, in-depth, what the scope is in JavaScript.]]></description><link>https://dmitripavlutin.com/javascript-scope/</link><guid isPermaLink="false">https://dmitripavlutin.com/javascript-scope/</guid><category><![CDATA[javascript]]></category><category><![CDATA[scope]]></category><category><![CDATA[variable]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Mon, 20 Apr 2020 12:30:00 GMT</pubDate></item><item><title><![CDATA[How && and || Operators Really Work in JavaScript]]></title><description><![CDATA[In-depth post on how && (logical and) and || (logical or) operators work in JavaScript.]]></description><link>https://dmitripavlutin.com/javascript-and-or-logical-operators/</link><guid isPermaLink="false">https://dmitripavlutin.com/javascript-and-or-logical-operators/</guid><category><![CDATA[javascript]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Thu, 09 Apr 2020 12:10:00 GMT</pubDate></item><item><title><![CDATA[The Module Import in JavaScript Has a Drawback]]></title><description><![CDATA[In JavaScript you might have difficulties to use autocomplete on named imports. Let's study the problem and find a solution.]]></description><link>https://dmitripavlutin.com/javascript-import-module-drawback/</link><guid isPermaLink="false">https://dmitripavlutin.com/javascript-import-module-drawback/</guid><category><![CDATA[javascript]]></category><category><![CDATA[es2015]]></category><category><![CDATA[module]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Wed, 01 Apr 2020 14:15:00 GMT</pubDate></item><item><title><![CDATA[Why for...of Loop in JavaScript is a Gem]]></title><description><![CDATA[for...of cycle in JavaScript iterates arrays, maps, sets, array-like objects, iterables, plus supports in-place destructuring.]]></description><link>https://dmitripavlutin.com/javascript-for-of/</link><guid isPermaLink="false">https://dmitripavlutin.com/javascript-for-of/</guid><category><![CDATA[javascript]]></category><category><![CDATA[for]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Wed, 25 Mar 2020 13:40:00 GMT</pubDate></item><item><title><![CDATA[Handy Tips on Using console.log()]]></title><description><![CDATA[Practical tips on how to use efficiently console.log().]]></description><link>https://dmitripavlutin.com/console-log-tips/</link><guid isPermaLink="false">https://dmitripavlutin.com/console-log-tips/</guid><category><![CDATA[javascript]]></category><category><![CDATA[debugging]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Wed, 18 Mar 2020 14:30:00 GMT</pubDate></item><item><title><![CDATA[What Happens When a Module Is Imported Twice?]]></title><description><![CDATA[A JavaScript module is evaluated just once. When imported multiple times from the same path, the same module instance is returned.]]></description><link>https://dmitripavlutin.com/javascript-module-import-twice/</link><guid isPermaLink="false">https://dmitripavlutin.com/javascript-module-import-twice/</guid><category><![CDATA[javascript]]></category><category><![CDATA[es2015]]></category><category><![CDATA[module]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Tue, 10 Mar 2020 12:00:00 GMT</pubDate></item><item><title><![CDATA[3 Rules of React State Management]]></title><description><![CDATA[3 Rules of React State Management: one concept per state variable, extract complex state into hooks and extract multiple ops to reducers.]]></description><link>https://dmitripavlutin.com/react-state-management/</link><guid isPermaLink="false">https://dmitripavlutin.com/react-state-management/</guid><category><![CDATA[javascript]]></category><category><![CDATA[react]]></category><category><![CDATA[state]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Wed, 04 Mar 2020 09:00:00 GMT</pubDate></item><item><title><![CDATA[4 Best Practices to Write Quality JavaScript Modules]]></title><description><![CDATA[JavaScript modules best practices: prefer named exports, no work during import, favor high cohesion and avoid long relative paths.]]></description><link>https://dmitripavlutin.com/javascript-modules-best-practices/</link><guid isPermaLink="false">https://dmitripavlutin.com/javascript-modules-best-practices/</guid><category><![CDATA[javascript]]></category><category><![CDATA[module]]></category><category><![CDATA[clean code]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Wed, 26 Feb 2020 12:00:00 GMT</pubDate></item><item><title><![CDATA[4 Ways to Swap Variables in JavaScript]]></title><description><![CDATA[There are 4 good ways to swap variables in JavaScript: using a destructuring assignment, a temporary variable, addition & difference, or XOR operator.]]></description><link>https://dmitripavlutin.com/swap-variables-javascript/</link><guid isPermaLink="false">https://dmitripavlutin.com/swap-variables-javascript/</guid><category><![CDATA[javascript]]></category><category><![CDATA[variable]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Wed, 19 Feb 2020 09:20:00 GMT</pubDate></item><item><title><![CDATA[How To Setup Your Local React Playground]]></title><description><![CDATA[How to setup your local React playground in 3 easy steps: install parcel, create 2 source files, run parcel. Then... play with React!]]></description><link>https://dmitripavlutin.com/react-playground-setup/</link><guid isPermaLink="false">https://dmitripavlutin.com/react-playground-setup/</guid><category><![CDATA[react]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Tue, 11 Feb 2020 13:40:00 GMT</pubDate></item><item><title><![CDATA[3 Ways To Access Object Properties in JavaScript]]></title><description><![CDATA[You can access an object property in JavaScript in 3 ways: dot property accessor, square brackets property accessor, or object destructuring.]]></description><link>https://dmitripavlutin.com/access-object-properties-javascript/</link><guid isPermaLink="false">https://dmitripavlutin.com/access-object-properties-javascript/</guid><category><![CDATA[javascript]]></category><category><![CDATA[object]]></category><category><![CDATA[property]]></category><category><![CDATA[destructuring]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Wed, 05 Feb 2020 10:25:00 GMT</pubDate></item><item><title><![CDATA[5 Best Practices to Write Quality Arrow Functions]]></title><description><![CDATA[Best practices on how to write quality, readable and concise arrow functions in JavaScript.]]></description><link>https://dmitripavlutin.com/javascript-arrow-functions-best-practices/</link><guid isPermaLink="false">https://dmitripavlutin.com/javascript-arrow-functions-best-practices/</guid><category><![CDATA[javascript]]></category><category><![CDATA[arrow function]]></category><category><![CDATA[clean code]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Wed, 29 Jan 2020 11:30:00 GMT</pubDate></item><item><title><![CDATA[How to Use Template Strings in JavaScript]]></title><description><![CDATA[Template strings in JavaScript are surrounded by backticks `string` and perform string interpolation: `Hello ${who}!`]]></description><link>https://dmitripavlutin.com/javascript-template-strings/</link><guid isPermaLink="false">https://dmitripavlutin.com/javascript-template-strings/</guid><category><![CDATA[javascript]]></category><category><![CDATA[string]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Wed, 22 Jan 2020 11:30:00 GMT</pubDate></item><item><title><![CDATA[The Explicit Coding Discipline]]></title><description><![CDATA[The explicit coding discipline favors clear and explicit expression of intent in the code.]]></description><link>https://dmitripavlutin.com/explicit-coding-discipline/</link><guid isPermaLink="false">https://dmitripavlutin.com/explicit-coding-discipline/</guid><category><![CDATA[craftsmanship]]></category><category><![CDATA[clean code]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Wed, 15 Jan 2020 14:00:00 GMT</pubDate></item><item><title><![CDATA[NaN in JavaScript]]></title><description><![CDATA[NaN, denoting "Not A Number", is a special number in JavaScript created after a faulty operation on numbers.]]></description><link>https://dmitripavlutin.com/nan-in-javascript/</link><guid isPermaLink="false">https://dmitripavlutin.com/nan-in-javascript/</guid><category><![CDATA[javascript]]></category><category><![CDATA[number]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Wed, 08 Jan 2020 10:00:00 GMT</pubDate></item><item><title><![CDATA[How To Use Correctly JavaScript Utility Libraries]]></title><description><![CDATA[How to correctly integrate JavaScript utility libraries into your application and minimize the increase of bundle size.]]></description><link>https://dmitripavlutin.com/javascript-utility-libraries/</link><guid isPermaLink="false">https://dmitripavlutin.com/javascript-utility-libraries/</guid><category><![CDATA[javascript]]></category><category><![CDATA[module]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Thu, 02 Jan 2020 12:00:00 GMT</pubDate></item><item><title><![CDATA[3 Ways To Replace All String Occurrences in JavaScript]]></title><description><![CDATA[You can replace all occurrences of a string using split and join approach, replace() with a regular expression and the new replaceAll() string method.]]></description><link>https://dmitripavlutin.com/replace-all-string-occurrences-javascript/</link><guid isPermaLink="false">https://dmitripavlutin.com/replace-all-string-occurrences-javascript/</guid><category><![CDATA[javascript]]></category><category><![CDATA[string]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Tue, 24 Dec 2019 11:15:00 GMT</pubDate></item><item><title><![CDATA[Infinity in JavaScript]]></title><description><![CDATA[Infinity in JavaScript is a special number bigger than any finite number.]]></description><link>https://dmitripavlutin.com/infinity-in-javascript/</link><guid isPermaLink="false">https://dmitripavlutin.com/infinity-in-javascript/</guid><category><![CDATA[javascript]]></category><category><![CDATA[number]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Tue, 17 Dec 2019 13:00:00 GMT</pubDate></item><item><title><![CDATA[The Complete Guide to JavaScript Classes]]></title><description><![CDATA[JavaScript classes initialize instances with constructors, have fields and methods, permit encapsulation with private fields.]]></description><link>https://dmitripavlutin.com/javascript-classes-complete-guide/</link><guid isPermaLink="false">https://dmitripavlutin.com/javascript-classes-complete-guide/</guid><category><![CDATA[javascript]]></category><category><![CDATA[class]]></category><category><![CDATA[instanceof]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Wed, 11 Dec 2019 13:45:00 GMT</pubDate></item><item><title><![CDATA[Type Checking in JavaScript is Slightly Screwed]]></title><description><![CDATA["typeof" and "instanceof" perform the type checking in JavaScript. While they are generally simple to use, make sure to known the edge cases.]]></description><link>https://dmitripavlutin.com/javascript-type-checking-screwed/</link><guid isPermaLink="false">https://dmitripavlutin.com/javascript-type-checking-screwed/</guid><category><![CDATA[javascript]]></category><category><![CDATA[typeof]]></category><category><![CDATA[instanceof]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Tue, 03 Dec 2019 13:20:00 GMT</pubDate></item><item><title><![CDATA[The Benefits of Orthogonal React Components]]></title><description><![CDATA[How to design React components that are easy to change, maintain, and test? Strive to orthogonal React components.]]></description><link>https://dmitripavlutin.com/orthogonal-react-components/</link><guid isPermaLink="false">https://dmitripavlutin.com/orthogonal-react-components/</guid><category><![CDATA[react]]></category><category><![CDATA[component]]></category><category><![CDATA[architecture]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Wed, 27 Nov 2019 14:00:00 GMT</pubDate></item><item><title><![CDATA[15 Common Operations on Arrays in JavaScript (Cheatsheet)]]></title><description><![CDATA[15 operations on arrays in JavaScript: iterate, map, reduce, concat, slice, clone, search, query, filter, insert, remove, empty, fill, flatten and sort.]]></description><link>https://dmitripavlutin.com/operations-on-arrays-javascript/</link><guid isPermaLink="false">https://dmitripavlutin.com/operations-on-arrays-javascript/</guid><category><![CDATA[javascript]]></category><category><![CDATA[array]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Wed, 20 Nov 2019 13:00:00 GMT</pubDate></item><item><title><![CDATA[The Wise Guide to React useState() Hook]]></title><description><![CDATA[React useState() hook manages the state of functional components.]]></description><link>https://dmitripavlutin.com/react-usestate-hook-guide/</link><guid isPermaLink="false">https://dmitripavlutin.com/react-usestate-hook-guide/</guid><category><![CDATA[react]]></category><category><![CDATA[state]]></category><category><![CDATA[hook]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Wed, 13 Nov 2019 13:00:00 GMT</pubDate></item><item><title><![CDATA[Lifecycle methods, hooks, suspense: which's best for fetching in React?]]></title><description><![CDATA[Lifecycle methods, hooks & suspense fetch data in React. The post describes them in examples and demos, distill the benefits and drawbacks of each one.]]></description><link>https://dmitripavlutin.com/react-fetch-lifecycle-methods-hooks-suspense/</link><guid isPermaLink="false">https://dmitripavlutin.com/react-fetch-lifecycle-methods-hooks-suspense/</guid><category><![CDATA[react]]></category><category><![CDATA[lifecycle]]></category><category><![CDATA[hook]]></category><category><![CDATA[suspense]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Wed, 06 Nov 2019 12:10:00 GMT</pubDate></item><item><title><![CDATA[JavaScript Closure: The Beginner's Friendly Guide]]></title><description><![CDATA[A closure is a function that captures variables from where it is defined (or its lexical scope).]]></description><link>https://dmitripavlutin.com/javascript-closure/</link><guid isPermaLink="false">https://dmitripavlutin.com/javascript-closure/</guid><category><![CDATA[javascript]]></category><category><![CDATA[closure]]></category><category><![CDATA[scope]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Fri, 25 Oct 2019 04:00:00 GMT</pubDate></item><item><title><![CDATA[Be Aware of Stale Closures when Using React Hooks]]></title><description><![CDATA[The stale closures is a pitfall of React hooks when an outdated variable is captured by a closure.]]></description><link>https://dmitripavlutin.com/react-hooks-stale-closures/</link><guid isPermaLink="false">https://dmitripavlutin.com/react-hooks-stale-closures/</guid><category><![CDATA[react]]></category><category><![CDATA[hook]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Thu, 24 Oct 2019 00:00:00 GMT</pubDate></item><item><title><![CDATA[7 Simple but Tricky JavaScript Interview Questions]]></title><description><![CDATA[A compiled list of simple but tricky questions you might be asked during a JavaScript coding interview.]]></description><link>https://dmitripavlutin.com/simple-but-tricky-javascript-interview-questions/</link><guid isPermaLink="false">https://dmitripavlutin.com/simple-but-tricky-javascript-interview-questions/</guid><category><![CDATA[javascript]]></category><category><![CDATA[closure]]></category><category><![CDATA[array]]></category><category><![CDATA[hoisting]]></category><category><![CDATA[interview]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Tue, 15 Oct 2019 12:40:00 GMT</pubDate></item><item><title><![CDATA[When to Use Map instead of Plain JavaScript Object]]></title><description><![CDATA[Map complements plain objects. Map's main benefits over plain object is allowing keys of any type and any name.]]></description><link>https://dmitripavlutin.com/maps-vs-plain-objects-javascript/</link><guid isPermaLink="false">https://dmitripavlutin.com/maps-vs-plain-objects-javascript/</guid><category><![CDATA[javascript]]></category><category><![CDATA[map]]></category><category><![CDATA[object]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Wed, 09 Oct 2019 13:00:00 GMT</pubDate></item><item><title><![CDATA[Don't Use JavaScript Variables Without Knowing Temporal Dead Zone]]></title><description><![CDATA[Temporal Dead Zone forbids the access of variables and classes before declaration in JavaScript.]]></description><link>https://dmitripavlutin.com/javascript-variables-and-temporal-dead-zone/</link><guid isPermaLink="false">https://dmitripavlutin.com/javascript-variables-and-temporal-dead-zone/</guid><category><![CDATA[javascript]]></category><category><![CDATA[variable]]></category><category><![CDATA[tdz]]></category><category><![CDATA[es2015]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Tue, 01 Oct 2019 13:00:00 GMT</pubDate></item><item><title><![CDATA[How to Solve Render Props Callback Hell]]></title><description><![CDATA[Efficient techniques to solve the callback hell problem of React render props.]]></description><link>https://dmitripavlutin.com/solve-react-render-props-callback-hell/</link><guid isPermaLink="false">https://dmitripavlutin.com/solve-react-render-props-callback-hell/</guid><category><![CDATA[react]]></category><category><![CDATA[render prop]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Tue, 24 Sep 2019 11:45:00 GMT</pubDate></item><item><title><![CDATA[Let's Master JavaScript Function Parameters]]></title><description><![CDATA[A detailed guide on how to use efficiently function parameters in JavaScript.]]></description><link>https://dmitripavlutin.com/javascript-function-parameters/</link><guid isPermaLink="false">https://dmitripavlutin.com/javascript-function-parameters/</guid><category><![CDATA[javascript]]></category><category><![CDATA[function]]></category><category><![CDATA[parameter]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Tue, 17 Sep 2019 13:00:00 GMT</pubDate></item><item><title><![CDATA[How to Handle Easily 'this' in JavaScript]]></title><description><![CDATA[How to handle easily 'this' value in JavaScript using an additional variable, arrow functions, manual binding, or fat arrow methods.]]></description><link>https://dmitripavlutin.com/fix-this-in-javascript/</link><guid isPermaLink="false">https://dmitripavlutin.com/fix-this-in-javascript/</guid><category><![CDATA[javascript]]></category><category><![CDATA[this]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Wed, 11 Sep 2019 13:00:00 GMT</pubDate></item><item><title><![CDATA[How To Accelerate the JavaScript Spread Operator]]></title><description><![CDATA[The fast-path optimization increases at least twice the performance of JavaScript spread operator.]]></description><link>https://dmitripavlutin.com/javascript-spread-operator-performance-optimization/</link><guid isPermaLink="false">https://dmitripavlutin.com/javascript-spread-operator-performance-optimization/</guid><category><![CDATA[javascript]]></category><category><![CDATA[spread]]></category><category><![CDATA[performance]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Tue, 03 Sep 2019 13:10:00 GMT</pubDate></item><item><title><![CDATA[5 Handy Applications of JavaScript Array.from()]]></title><description><![CDATA[Array.from() transforms array-like objects to arrays, generates ranges, removes arrays duplicates, initializes and clones arrays.]]></description><link>https://dmitripavlutin.com/javascript-array-from-applications/</link><guid isPermaLink="false">https://dmitripavlutin.com/javascript-array-from-applications/</guid><category><![CDATA[javascript]]></category><category><![CDATA[array]]></category><category><![CDATA[es2015]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Tue, 27 Aug 2019 13:24:00 GMT</pubDate></item><item><title><![CDATA[How to Use JavaScript Optional Chaining]]></title><description><![CDATA[Optional chaining accesses properties from deep of nested objects without prop existence verification and intermediate variables boilerplates.]]></description><link>https://dmitripavlutin.com/javascript-optional-chaining/</link><guid isPermaLink="false">https://dmitripavlutin.com/javascript-optional-chaining/</guid><category><![CDATA[javascript]]></category><category><![CDATA[optional chaining]]></category><category><![CDATA[nullish coalescing]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Wed, 21 Aug 2019 13:06:00 GMT</pubDate></item><item><title><![CDATA[5 Interesting Uses of JavaScript Destructuring]]></title><description><![CDATA[A list of interesting and helpful applications of destructing assignments in JavaScript.]]></description><link>https://dmitripavlutin.com/5-interesting-uses-javascript-destructuring/</link><guid isPermaLink="false">https://dmitripavlutin.com/5-interesting-uses-javascript-destructuring/</guid><category><![CDATA[javascript]]></category><category><![CDATA[destructuring]]></category><category><![CDATA[rest]]></category><category><![CDATA[es2015]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Thu, 15 Aug 2019 13:15:00 GMT</pubDate></item><item><title><![CDATA[How to Make Your Open Source Project Successful]]></title><description><![CDATA[A successful open source project solves a real problem, puts an accent on quality and has excellent documentation.]]></description><link>https://dmitripavlutin.com/how-to-make-your-open-source-project-successful/</link><guid isPermaLink="false">https://dmitripavlutin.com/how-to-make-your-open-source-project-successful/</guid><category><![CDATA[open source]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Tue, 06 Aug 2019 13:00:00 GMT</pubDate></item><item><title><![CDATA[Arrow Functions Shortening Recipes in JavaScript]]></title><description><![CDATA[How to shorten arrow functions in JavaScript to increase the readability of your code.]]></description><link>https://dmitripavlutin.com/javascript-arrow-functions-shortening-recipes/</link><guid isPermaLink="false">https://dmitripavlutin.com/javascript-arrow-functions-shortening-recipes/</guid><category><![CDATA[javascript]]></category><category><![CDATA[arrow function]]></category><category><![CDATA[es2015]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Tue, 30 Jul 2019 13:00:00 GMT</pubDate></item><item><title><![CDATA[How to Become a Better Software Developer by Digging & Climbing]]></title><description><![CDATA[Read my story of how to become a better software developer by digging low level details and climbing good system design principles.]]></description><link>https://dmitripavlutin.com/become-better-software-developer-digging-climbing/</link><guid isPermaLink="false">https://dmitripavlutin.com/become-better-software-developer-digging-climbing/</guid><category><![CDATA[craftsmanship]]></category><category><![CDATA[clean code]]></category><category><![CDATA[architecture]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Tue, 23 Jul 2019 13:20:00 GMT</pubDate></item><item><title><![CDATA[Use React.memo() wisely]]></title><description><![CDATA[React.memo() increases the performance of functional components by preventing useless renderings. But such performance tweaks must be applied wisely.]]></description><link>https://dmitripavlutin.com/use-react-memo-wisely/</link><guid isPermaLink="false">https://dmitripavlutin.com/use-react-memo-wisely/</guid><category><![CDATA[react]]></category><category><![CDATA[memoization]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Wed, 17 Jul 2019 11:30:00 GMT</pubDate></item><item><title><![CDATA[5 JavaScript Bad Coding Habits to Unlearn Right Now]]></title><description><![CDATA[Overuse of implicit type conversion, old JavaScript tricks, polluting function scope, undefined & null, casual coding style ruin JavaScript code quality]]></description><link>https://dmitripavlutin.com/unlearn-javascript-bad-coding-habits/</link><guid isPermaLink="false">https://dmitripavlutin.com/unlearn-javascript-bad-coding-habits/</guid><category><![CDATA[javascript]]></category><category><![CDATA[undefined]]></category><category><![CDATA[clean code]]></category><category><![CDATA[craftsmanship]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Wed, 10 Jul 2019 14:30:00 GMT</pubDate></item><item><title><![CDATA[How to Use forEach() to Iterate an Array in JavaScript]]></title><description><![CDATA[forEach() in JavaScript calls the provided function on each array item with 3 arguments: item, index, the array itself. Learn how to use forEach().]]></description><link>https://dmitripavlutin.com/foreach-iterate-array-javascript/</link><guid isPermaLink="false">https://dmitripavlutin.com/foreach-iterate-array-javascript/</guid><category><![CDATA[javascript]]></category><category><![CDATA[array]]></category><category><![CDATA[foreach]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Wed, 03 Jul 2019 00:00:00 GMT</pubDate></item><item><title><![CDATA[An Easy Guide to Object Rest/Spread Properties in JavaScript]]></title><description><![CDATA[Object spread allows easily to clone, merge, extend objects. While object rest collects rest of properties after destructuring.]]></description><link>https://dmitripavlutin.com/object-rest-spread-properties-javascript/</link><guid isPermaLink="false">https://dmitripavlutin.com/object-rest-spread-properties-javascript/</guid><category><![CDATA[javascript]]></category><category><![CDATA[spread]]></category><category><![CDATA[rest]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Wed, 03 Jan 2018 00:00:00 GMT</pubDate></item><item><title><![CDATA[7 Architectural Attributes of a Reliable React Component]]></title><description><![CDATA[A detailed explanation of how to architecture React components based on single responsibility principle, encapsulation and composition.]]></description><link>https://dmitripavlutin.com/7-architectural-attributes-of-a-reliable-react-component/</link><guid isPermaLink="false">https://dmitripavlutin.com/7-architectural-attributes-of-a-reliable-react-component/</guid><category><![CDATA[react]]></category><category><![CDATA[component]]></category><category><![CDATA[architecture]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Tue, 26 Sep 2017 00:00:00 GMT</pubDate></item><item><title><![CDATA[7 Tips to Handle undefined in JavaScript]]></title><description><![CDATA[A detailed article about 'undefined' keyword in JavaScript. 7 tips on how to handle correctly 'undefined' and increase code durability.]]></description><link>https://dmitripavlutin.com/7-tips-to-handle-undefined-in-javascript/</link><guid isPermaLink="false">https://dmitripavlutin.com/7-tips-to-handle-undefined-in-javascript/</guid><category><![CDATA[javascript]]></category><category><![CDATA[undefined]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Sat, 15 Apr 2017 00:00:00 GMT</pubDate></item><item><title><![CDATA[Announcing Voca: The Ultimate JavaScript String Library]]></title><description><![CDATA[The Voca library offers helpful functions to make string manipulations comfortable: change case, trim, pad, slugifly, latinise, sprintf, truncate, escape and more.]]></description><link>https://dmitripavlutin.com/announcing-voca-the-ultimate-javascript-string-library/</link><guid isPermaLink="false">https://dmitripavlutin.com/announcing-voca-the-ultimate-javascript-string-library/</guid><category><![CDATA[javascript]]></category><category><![CDATA[string]]></category><category><![CDATA[open source]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Wed, 14 Dec 2016 00:00:00 GMT</pubDate></item><item><title><![CDATA[Make Your Swift Code Expressive: Addition Operator Use Cases]]></title><description><![CDATA[Check + and += operators use cases for writing short and concise expressions: sum numbers & measurements, concat strings & arrays, date manipulations.]]></description><link>https://dmitripavlutin.com/make-your-swift-code-expressive-addition-operator-use-cases/</link><guid isPermaLink="false">https://dmitripavlutin.com/make-your-swift-code-expressive-addition-operator-use-cases/</guid><category><![CDATA[swift]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Wed, 16 Nov 2016 00:00:00 GMT</pubDate></item><item><title><![CDATA[How to Use Correctly 'self' Keyword in Swift]]></title><description><![CDATA[Interesting dive into practices how to use 'self' keyword in Swift. Should you omit or always use 'self'? Find out the reasons and answer.]]></description><link>https://dmitripavlutin.com/how-to-use-correctly-self-keyword-in-swift/</link><guid isPermaLink="false">https://dmitripavlutin.com/how-to-use-correctly-self-keyword-in-swift/</guid><category><![CDATA[swift]]></category><category><![CDATA[self]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Wed, 09 Nov 2016 00:00:00 GMT</pubDate></item><item><title><![CDATA[Mastering Swift: Tips About Array and Dictionary Literals]]></title><description><![CDATA[How to use Swift literals to initialize the 3 fundamental collection types: array, set and dictionary. Details about collection type inference.]]></description><link>https://dmitripavlutin.com/concise-initialization-of-collections-in-swift/</link><guid isPermaLink="false">https://dmitripavlutin.com/concise-initialization-of-collections-in-swift/</guid><category><![CDATA[swift]]></category><category><![CDATA[array]]></category><category><![CDATA[set]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Tue, 01 Nov 2016 00:00:00 GMT</pubDate></item><item><title><![CDATA[Useful Details About Underscore Keyword in Swift]]></title><description><![CDATA[The underscore keyword `_` is used to skip providing unnecessary details in Swift. See all its use cases in details and explanatory examples.]]></description><link>https://dmitripavlutin.com/useful-details-about-underscore-keyword-in-swift/</link><guid isPermaLink="false">https://dmitripavlutin.com/useful-details-about-underscore-keyword-in-swift/</guid><category><![CDATA[swift]]></category><category><![CDATA[underscore]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Tue, 25 Oct 2016 00:00:00 GMT</pubDate></item><item><title><![CDATA[Coding like Shakespeare: Practical Function Naming Conventions]]></title><description><![CDATA[Code like a poet! The article describes practical function naming conventions to increase the code readability. Useful clean code tips and examples.]]></description><link>https://dmitripavlutin.com/coding-like-shakespeare-practical-function-naming-conventions/</link><guid isPermaLink="false">https://dmitripavlutin.com/coding-like-shakespeare-practical-function-naming-conventions/</guid><category><![CDATA[clean code]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Wed, 12 Oct 2016 00:00:00 GMT</pubDate></item><item><title><![CDATA[Mastering Swift: Essential Details About Strings]]></title><description><![CDATA[A detailed writing how efficiently to handle strings in Swift: string views, count characters, access characters by index and complex string manipulations.]]></description><link>https://dmitripavlutin.com/mastering-swift-essential-details-about-strings/</link><guid isPermaLink="false">https://dmitripavlutin.com/mastering-swift-essential-details-about-strings/</guid><category><![CDATA[swift]]></category><category><![CDATA[string]]></category><category><![CDATA[unicode]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Wed, 05 Oct 2016 00:00:00 GMT</pubDate></item><item><title><![CDATA[Useful Tips for Migrating to Swift 3.0]]></title><description><![CDATA[The article describes useful tips to migrate to  Swift 3.0. C-style for-loops are replaced by for-in loops, new rules for argument labels, and so on.]]></description><link>https://dmitripavlutin.com/useful-tips-for-migrating-to-swift-3-0/</link><guid isPermaLink="false">https://dmitripavlutin.com/useful-tips-for-migrating-to-swift-3-0/</guid><category><![CDATA[swift]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Wed, 28 Sep 2016 00:00:00 GMT</pubDate></item><item><title><![CDATA[The Path of Software Development Craftsmanship]]></title><description><![CDATA[Detailed learning of algorithms and data structures is a must for everyone who plans to become a great software developer. Half knowledge is zero-knowledge.]]></description><link>https://dmitripavlutin.com/the-path-of-software-development-craftsmanship/</link><guid isPermaLink="false">https://dmitripavlutin.com/the-path-of-software-development-craftsmanship/</guid><category><![CDATA[javascript]]></category><category><![CDATA[craftsmanship]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Wed, 21 Sep 2016 00:00:00 GMT</pubDate></item><item><title><![CDATA[What every JavaScript developer should know about Unicode]]></title><description><![CDATA[Unicode in JavaScript: basic concepts, escape sequences, normalization, surrogate pairs, combining marks and how to avoid pitfalls]]></description><link>https://dmitripavlutin.com/what-every-javascript-developer-should-know-about-unicode/</link><guid isPermaLink="false">https://dmitripavlutin.com/what-every-javascript-developer-should-know-about-unicode/</guid><category><![CDATA[javascript]]></category><category><![CDATA[string]]></category><category><![CDATA[unicode]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Wed, 14 Sep 2016 00:00:00 GMT</pubDate></item><item><title><![CDATA[The Art of Writing Small and Plain Functions]]></title><description><![CDATA[Messy code wastes your time & efforts. It poisons apps. Clean code is obligatory for a successful project: learn to write small and plain functions.]]></description><link>https://dmitripavlutin.com/the-art-of-writing-small-and-plain-functions/</link><guid isPermaLink="false">https://dmitripavlutin.com/the-art-of-writing-small-and-plain-functions/</guid><category><![CDATA[javascript]]></category><category><![CDATA[function]]></category><category><![CDATA[clean code]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Wed, 31 Aug 2016 00:00:00 GMT</pubDate></item><item><title><![CDATA[How to Iterate Easily Over Object Properties in JavaScript]]></title><description><![CDATA[Object.values() and Object.entries() are another improvement step for JavaScript developers to have helper functions that iterate over object properties.]]></description><link>https://dmitripavlutin.com/how-to-iterate-easily-over-object-properties-in-javascript/</link><guid isPermaLink="false">https://dmitripavlutin.com/how-to-iterate-easily-over-object-properties-in-javascript/</guid><category><![CDATA[javascript]]></category><category><![CDATA[object]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Tue, 23 Aug 2016 00:00:00 GMT</pubDate></item><item><title><![CDATA[Make your JavaScript Code Shine: Knockout Old ES5 Hacks (Part 2)]]></title><description><![CDATA[Hacks influence negatively the way JavaScript programs are coded. Find out how to remove old hacks and make your code shine again using ES2015 features.]]></description><link>https://dmitripavlutin.com/make-your-javascript-code-shine-knockout-old-es5-hacks-part-2/</link><guid isPermaLink="false">https://dmitripavlutin.com/make-your-javascript-code-shine-knockout-old-es5-hacks-part-2/</guid><category><![CDATA[javascript]]></category><category><![CDATA[es2015]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Wed, 17 Aug 2016 00:00:00 GMT</pubDate></item><item><title><![CDATA[Make your JavaScript Code Shine: Knockout Old ES5 Hacks]]></title><description><![CDATA[Hacks influence negatively the way JavaScript programs are coded. Find out how to remove old hacks and make your code shining again using ES2015 features.]]></description><link>https://dmitripavlutin.com/make-your-javascript-code-shide-knockout-old-es5-hack/</link><guid isPermaLink="false">https://dmitripavlutin.com/make-your-javascript-code-shide-knockout-old-es5-hack/</guid><category><![CDATA[javascript]]></category><category><![CDATA[es2015]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Wed, 10 Aug 2016 00:00:00 GMT</pubDate></item><item><title><![CDATA[Detailed Overview of Well-known Symbols]]></title><description><![CDATA[Well-known symbols allow to customize many JavaScript algorithms: elements iteration, instanceof, regexp string methods, derived object and more.]]></description><link>https://dmitripavlutin.com/detailed-overview-of-well-known-symbols/</link><guid isPermaLink="false">https://dmitripavlutin.com/detailed-overview-of-well-known-symbols/</guid><category><![CDATA[javascript]]></category><category><![CDATA[symbol]]></category><category><![CDATA[es2015]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Wed, 03 Aug 2016 00:00:00 GMT</pubDate></item><item><title><![CDATA[JavaScript Variables Lifecycle: Why let Is Not Hoisted]]></title><description><![CDATA[Hoisting moves variables and functions to the beginning of the scope. But this term is no longer valid for `let`, `const` and `class`: and here's why.]]></description><link>https://dmitripavlutin.com/variables-lifecycle-and-why-let-is-not-hoisted/</link><guid isPermaLink="false">https://dmitripavlutin.com/variables-lifecycle-and-why-let-is-not-hoisted/</guid><category><![CDATA[javascript]]></category><category><![CDATA[variable]]></category><category><![CDATA[hoisting]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Wed, 27 Jul 2016 00:00:00 GMT</pubDate></item><item><title><![CDATA[Why Object Literals in JavaScript Are Cool]]></title><description><![CDATA[ES2015 improves the object literals (or initialiazers) to set the prototype using __proto__, use super, shorthand method declarations, computed names.]]></description><link>https://dmitripavlutin.com/why-object-literals-in-javascript-are-cool/</link><guid isPermaLink="false">https://dmitripavlutin.com/why-object-literals-in-javascript-are-cool/</guid><category><![CDATA[javascript]]></category><category><![CDATA[object]]></category><category><![CDATA[es2015]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Wed, 20 Jul 2016 00:00:00 GMT</pubDate></item><item><title><![CDATA[Must Know Details about ES2016 Features]]></title><description><![CDATA[ES2016 is a small but important release. Examine the must know details about the new array method includes() and the exponentiation operator.]]></description><link>https://dmitripavlutin.com/must-know-details-about-es2016-features/</link><guid isPermaLink="false">https://dmitripavlutin.com/must-know-details-about-es2016-features/</guid><category><![CDATA[javascript]]></category><category><![CDATA[es2016]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Tue, 12 Jul 2016 00:00:00 GMT</pubDate></item><item><title><![CDATA[Yes. JavaScript Rises.]]></title><description><![CDATA[The history how JavaScript from a complementary language in 1995 became the most popular language these days.]]></description><link>https://dmitripavlutin.com/javascript-rises/</link><guid isPermaLink="false">https://dmitripavlutin.com/javascript-rises/</guid><category><![CDATA[javascript]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Mon, 04 Jul 2016 00:00:00 GMT</pubDate></item><item><title><![CDATA[Power Up the Array Creation in JavaScript]]></title><description><![CDATA[ES6 improves the way arrays are created in JavaScript. See how the combination of array literal, spread operator and iterators upgrade array initialization.]]></description><link>https://dmitripavlutin.com/power-up-the-array-creation-in-javascript/</link><guid isPermaLink="false">https://dmitripavlutin.com/power-up-the-array-creation-in-javascript/</guid><category><![CDATA[javascript]]></category><category><![CDATA[array]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Tue, 28 Jun 2016 00:00:00 GMT</pubDate></item><item><title><![CDATA[JavaScript Function Declaration: The 6 Ways]]></title><description><![CDATA[Six ways to declare (define) JavaScript functions: function declaration, function expression, arrow function, and more. Pick the one you need.]]></description><link>https://dmitripavlutin.com/6-ways-to-declare-javascript-functions/</link><guid isPermaLink="false">https://dmitripavlutin.com/6-ways-to-declare-javascript-functions/</guid><category><![CDATA[javascript]]></category><category><![CDATA[function]]></category><category><![CDATA[arrow-function]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Wed, 22 Jun 2016 00:00:00 GMT</pubDate></item><item><title><![CDATA[How Three Dots Changed JavaScript]]></title><description><![CDATA[Spread operator and rest parameter are great additions. The article explains how they improve array literals, array destructuring and function arguments handling.]]></description><link>https://dmitripavlutin.com/how-three-dots-changed-javascript/</link><guid isPermaLink="false">https://dmitripavlutin.com/how-three-dots-changed-javascript/</guid><category><![CDATA[javascript]]></category><category><![CDATA[spread]]></category><category><![CDATA[rest]]></category><category><![CDATA[iterable]]></category><category><![CDATA[iterator]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Tue, 14 Jun 2016 00:00:00 GMT</pubDate></item><item><title><![CDATA[When 'Not' to Use Arrow Functions]]></title><description><![CDATA[Arrow functions in JavaScript are great, but there are cases when you should avoid them. See the common pitfalls with explanations and examples.]]></description><link>https://dmitripavlutin.com/when-not-to-use-arrow-functions-in-javascript/</link><guid isPermaLink="false">https://dmitripavlutin.com/when-not-to-use-arrow-functions-in-javascript/</guid><category><![CDATA[javascript]]></category><category><![CDATA[arrow function]]></category><category><![CDATA[function]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Mon, 06 Jun 2016 00:00:00 GMT</pubDate></item><item><title><![CDATA[A Simple Explanation of Hoisting in JavaScript]]></title><description><![CDATA[The JavaScript variables hoisting described in easy to follow examples. See how hoisting works with var, const, let, function and class.]]></description><link>https://dmitripavlutin.com/javascript-hoisting-in-details/</link><guid isPermaLink="false">https://dmitripavlutin.com/javascript-hoisting-in-details/</guid><category><![CDATA[javascript]]></category><category><![CDATA[variable]]></category><category><![CDATA[hoisting]]></category><category><![CDATA[es2015]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Mon, 30 May 2016 00:00:00 GMT</pubDate></item><item><title><![CDATA[Gentle Explanation of "this" in JavaScript]]></title><description><![CDATA[The value of this keyword in JavaScript is determined by how the function is called. My guide will help you effortlessly understand this.]]></description><link>https://dmitripavlutin.com/gentle-explanation-of-this-in-javascript/</link><guid isPermaLink="false">https://dmitripavlutin.com/gentle-explanation-of-this-in-javascript/</guid><category><![CDATA[javascript]]></category><category><![CDATA[this]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Sun, 22 May 2016 00:00:00 GMT</pubDate></item><item><title><![CDATA[Inheritance in JavaScript: Understanding the constructor Property]]></title><description><![CDATA[The `constructor` property is a piece of the inheritance mechanism in JavaScript. Precautions should be taken when creating hierarchies of classes.  ]]></description><link>https://dmitripavlutin.com/understanding-constructor-property/</link><guid isPermaLink="false">https://dmitripavlutin.com/understanding-constructor-property/</guid><category><![CDATA[javascript]]></category><category><![CDATA[constructor]]></category><category><![CDATA[instanceof]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Sun, 01 May 2016 00:00:00 GMT</pubDate></item><item><title><![CDATA[Catch the XMLHttpRequest in Plain JavaScript]]></title><description><![CDATA[Explanation and example on how to catch the XMLHttpRequest start and finish events in plain JavaScript. Useful for Chrome extensions development.]]></description><link>https://dmitripavlutin.com/catch-the-xmlhttp-request-in-plain-javascript/</link><guid isPermaLink="false">https://dmitripavlutin.com/catch-the-xmlhttp-request-in-plain-javascript/</guid><category><![CDATA[javascript]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Sun, 24 Jan 2016 00:00:00 GMT</pubDate></item><item><title><![CDATA[The Magic Behind Array Length Property]]></title><description><![CDATA[Everything you need about Array.prototype.length in JavaScript: how to correctly query, modify and avoid potential problems. Lots of code samples.]]></description><link>https://dmitripavlutin.com/the-magic-behind-array-length-property/</link><guid isPermaLink="false">https://dmitripavlutin.com/the-magic-behind-array-length-property/</guid><category><![CDATA[javascript]]></category><category><![CDATA[array]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Sun, 17 Jan 2016 00:00:00 GMT</pubDate></item><item><title><![CDATA[The Legend of JavaScript Equality Operator]]></title><description><![CDATA[A great article on how the JavaScript equality and identity operators work. Covered with detailed explanation, computation algorithms and plenty of examples.]]></description><link>https://dmitripavlutin.com/the-legend-of-javascript-equality-operator/</link><guid isPermaLink="false">https://dmitripavlutin.com/the-legend-of-javascript-equality-operator/</guid><category><![CDATA[javascript]]></category><category><![CDATA[equality]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Mon, 04 Jan 2016 00:00:00 GMT</pubDate></item><item><title><![CDATA[JavaScript Addition Operator in Details]]></title><description><![CDATA[Addition in JavaScript can sum numbers or concatenate strings. How not to get confused? Study the addition algorithm and follow the examples.]]></description><link>https://dmitripavlutin.com/javascriptss-addition-operator-demystified/</link><guid isPermaLink="false">https://dmitripavlutin.com/javascriptss-addition-operator-demystified/</guid><category><![CDATA[javascript]]></category><category><![CDATA[addition]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Sat, 02 Jan 2016 00:00:00 GMT</pubDate></item><item><title><![CDATA[Install Node Like a Boss with nvm]]></title><description><![CDATA[The step by step tutorial on how to use nvm script for quick node installation. Allows to install many node versions, with quickly switch between them. ]]></description><link>https://dmitripavlutin.com/install-node-like-a-boss-with-nvm/</link><guid isPermaLink="false">https://dmitripavlutin.com/install-node-like-a-boss-with-nvm/</guid><category><![CDATA[nodejs]]></category><dc:creator><![CDATA[Dmitri Pavlutin]]></dc:creator><pubDate>Sat, 29 Aug 2015 00:00:00 GMT</pubDate></item></channel></rss>