<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/sources/jsPlainEnglish/best-of/2021/01" -->

---
title: Best JavaScript in Plain English posts — January 2021
description: The most upvoted JavaScript in Plain English posts from January 2021, curated by the daily.dev community.
canonical: https://daily.dev/sources/jsPlainEnglish/best-of/2021/01
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:url: https://daily.dev/sources/jsPlainEnglish/best-of/2021/01
og:type: website
og:site_name: daily.dev
og:title: Best JavaScript in Plain English posts — January 2021 | daily.dev
og:description: The most upvoted JavaScript in Plain English posts from January 2021, curated by the daily.dev community.
og:image: https://media.daily.dev/image/upload/s--VAY5ToZt--/f_auto/v1724209435/public/daily.dev%20-%20open%20graph
---

# Best of JavaScript in Plain English — January 2021

1. 1  
[](https://daily.dev/posts/what-is-proto-in-javascript--emzjamic2 "What is __proto__ in JavaScript?")  
Article  
![Avatar of jsPlainEnglish](https://media.daily.dev/image/upload/s--Dg5QTRuI--/f_auto,q_auto/v1686665538/logos/pe)JavaScript in Plain English · 6y  
What is \_\_proto\_\_ in JavaScript?  
Every single javascript object created, automatically comes with a \_\_proto\_\_ property. By giving assigning a new function sayHi to Object.prototype , every subsequent object that is created will automatically have that function. The usefulness is entirely up to you to decide. But before you go ahead and make use of \_\_ proto\_\_ in your production apps, do note that it has since been deprecated.  
60  
5
2. 2  
[](https://daily.dev/posts/create-a-dark-mode-theme-switch-with-gatsby-and-tailwindcss--v4a3z-px "Create a dark mode theme switch with Gatsby and TailwindCSS")  
Article  
![Avatar of jsPlainEnglish](https://media.daily.dev/image/upload/s--Dg5QTRuI--/f_auto,q_auto/v1686665538/logos/pe)JavaScript in Plain English · 6y  
Create a dark mode theme switch with Gatsby and TailwindCSS  
Dark mode support is a recent feature in almost every technology. While working with gatsby to create my portfolio, I couldn’t find an easy guide. After so much research, I was able to come up with this solution. And I believe this solution will also help you to easily get things to build up.  
43  
1
3. 3  
[](https://daily.dev/posts/how-to-create-an-awesome-github-profile-readme-g6j3paif4 "How To Create An Awesome Github Profile README")  
Article  
![Avatar of jsPlainEnglish](https://media.daily.dev/image/upload/s--Dg5QTRuI--/f_auto,q_auto/v1686665538/logos/pe)JavaScript in Plain English · 6y  
How To Create An Awesome Github Profile README  
GitHub recently released a feature that allows you to add a README to your profile page. You have full control over how you will present on GitHub profile. We can show visitors on your profile interesting, fun work and projects. WakaTime Weekly Metrics gives you an idea of the time you really spent on coding.  
40  
7
4. 4  
[](https://daily.dev/posts/these-4-websites-will-improve-your-web-development-efficiency-gabh8zay7 "These 4 Websites Will Improve Your Web Development Efficiency")  
Article  
![Avatar of jsPlainEnglish](https://media.daily.dev/image/upload/s--Dg5QTRuI--/f_auto,q_auto/v1686665538/logos/pe)JavaScript in Plain English · 6y  
These 4 Websites Will Improve Your Web Development Efficiency  
CODELF is a tool to help you distinguish the naming rules of each programming language. gitignore.io creates useful .gitignore files for your project by selecting from 518 Operating System, IDE, and Programming Language. CodeSandbox is an online code editor that focuses on creating web application projects.  
40  
2
5. 5  
[](https://daily.dev/posts/use-sql-query-builder-knex-js-with-node-js-and-express-js-og3q-m5jb "Use SQL Query Builder Knex.js with Node.js and Express.js")  
Article  
![Avatar of jsPlainEnglish](https://media.daily.dev/image/upload/s--Dg5QTRuI--/f_auto,q_auto/v1686665538/logos/pe)JavaScript in Plain English · 6y  
Use SQL Query Builder Knex.js with Node.js and Express.js  
Knex.js is a thin abstraction that sits on top of the database driver for relational databases. It supports transactions, connection pooling, streaming queries, a thorough test suite, and the ability to run in the browser. Knex can be used in both Node.Js and the browser, limited only by WebSQL’s constraints.  
36  
2
6. 6  
[](https://daily.dev/posts/5-good-practices-of-successful-programmers-wmbwzk7k5 "5 Good Practices of Successful Programmers")  
Article  
![Avatar of jsPlainEnglish](https://media.daily.dev/image/upload/s--Dg5QTRuI--/f_auto,q_auto/v1686665538/logos/pe)JavaScript in Plain English · 6y  
5 Good Practices of Successful Programmers  
5 Good Practices of Successful Programmers Arunakirinathan Aruthran shares with you. Maintaining a journal helps you to overcome the huge amount of learning material available online. Planning before writing code is a very important step in writing good software. Being updated on the latest developments is a must for successful programmers.  
34  
3
7. 7  
[](https://daily.dev/posts/how-model-view-controller-mvc-architectures-work-flbftxxfd "How Model View Controller (MVC) Architectures Work")  
Article  
![Avatar of jsPlainEnglish](https://media.daily.dev/image/upload/s--Dg5QTRuI--/f_auto,q_auto/v1686665538/logos/pe)JavaScript in Plain English · 6y  
How Model View Controller (MVC) Architectures Work  
Software architecture includes several contributory factors such as Business strategy, quality attributes, human dynamics, design, and IT environment. How Model View Controller (MVC) Architecture Works. The only interaction that takes place between them is through the Controller. The logic of the application and the interface never interacts with each other, which makes writing complex applications easy.  
29  
1
8. 8  
[](https://daily.dev/posts/4-javascript-frameworks-you-should-consider-for-your-next-web-app-ecslrb-oj "4 JavaScript Frameworks You Should Consider For Your Next Web App")  
Article  
![Avatar of jsPlainEnglish](https://media.daily.dev/image/upload/s--Dg5QTRuI--/f_auto,q_auto/v1686665538/logos/pe)JavaScript in Plain English · 6y  
4 JavaScript Frameworks You Should Consider For Your Next Web App  
With Pros & Cons For Each Rlogical Techsoft.Pvt.Ltd. 4 JavaScript Frameworks You Should Consider For Your Next Web App. Express.js, Next, Gatsby and Nuxt are the 4 JavaScript frameworks you should consider for your next web app.  
27  
2
9. 9  
[](https://daily.dev/posts/top-5-programming-languages-to-learn-in-2021-ogdo4nfy7 "Top 5 Programming Languages to learn in 2021")  
Article  
![Avatar of jsPlainEnglish](https://media.daily.dev/image/upload/s--Dg5QTRuI--/f_auto,q_auto/v1686665538/logos/pe)JavaScript in Plain English · 6y  
Top 5 Programming Languages to learn in 2021  
Today there are more than a hundred programming languages ( Google says more than 700 ), So many options to choose from. Choosing the first language is important as that builds your foundation and understanding of the Coding World. So let us see what are those top 5 programming languages which you should learn in 2021.  
26  
6
10. 10  
[](https://daily.dev/posts/4-must-know-higher-order-functions-in-javascript-zxrhwbwwz "4 Must-Know Higher-Order Functions in JavaScript")  
Article  
![Avatar of jsPlainEnglish](https://media.daily.dev/image/upload/s--Dg5QTRuI--/f_auto,q_auto/v1686665538/logos/pe)JavaScript in Plain English · 6y  
4 Must-Know Higher-Order Functions in JavaScript  
A higher-order function is just a function that either accepts or returns a function. The .map() function takes in a callback function as an argument and returns a new array object. In the first example, we are taking an array of numbers, numsA , and using the . map() function to return a newarray with the values doubled.  
25  
1
11. 11  
[](https://daily.dev/posts/5-frontend-interview-questions-to-help-you-master-asynchronous-javascript-5vnlownky "5 Frontend Interview Questions To Help You Master Asynchronous JavaScript")  
Article  
![Avatar of jsPlainEnglish](https://media.daily.dev/image/upload/s--Dg5QTRuI--/f_auto,q_auto/v1686665538/logos/pe)JavaScript in Plain English · 6y  
5 Frontend Interview Questions To Help You Master Asynchronous JavaScript  
5 Frontend Interview Questions To Help You Master Asynchronous JavaScript. Questions and Answers, from Beginner to Advanced ILIA KNIAZEV Follow Jan 20 · 4 min read src: https://ivanjov.com/do-you-promise/ Questions and answers, from beginner to advanced ILIA.  
23  
1
12. 12  
[](https://daily.dev/posts/intro-to-react-server-side-rendering-qniqtzwfo "Intro to React Server Side Rendering")  
Article  
![Avatar of jsPlainEnglish](https://media.daily.dev/image/upload/s--Dg5QTRuI--/f_auto,q_auto/v1686665538/logos/pe)JavaScript in Plain English · 6y  
Intro to React Server Side Rendering  
How to build a React SSR app without any tooling or framework. We will use React, webpack, and Express to build an app that works as follows: Browser sends HTTP request to server to load a page. Server receives request and turns React JSX into HTML markup. Browser renders the HTML, downloads the client-side JavaScript bundle, and “hydrates” the HTML.  
22  
6
13. 13  
[](https://daily.dev/posts/node-js-redis-improved-performance-lopgf9nyf "Node.js + Redis = Improved Performance")  
Article  
![Avatar of jsPlainEnglish](https://media.daily.dev/image/upload/s--Dg5QTRuI--/f_auto,q_auto/v1686665538/logos/pe)JavaScript in Plain English · 6y  
Node.js + Redis = Improved Performance  
17  
2
14. 14  
[](https://daily.dev/posts/what-are-callback-functions-in-javascript--2x7buwvha "What Are Callback Functions In JavaScript?")  
Article  
![Avatar of jsPlainEnglish](https://media.daily.dev/image/upload/s--Dg5QTRuI--/f_auto,q_auto/v1686665538/logos/pe)JavaScript in Plain English · 6y  
What Are Callback Functions In JavaScript?  
A callback is a function that is passed into another function as an argument which can be invoked later inside the function. Synchronous means the code statements execute immediately after one another in a sequential manner. If a callback is executing after an asynchronous operation has finished then it is an Asynchronous callback. Nested callbacks reduce the nesting of callbacks and reduces the readability of the code.  
16
15. 15  
[](https://daily.dev/posts/many-developers-struggle-with-explaining-apis-dunehbcrb "Many Developers Struggle With Explaining APIs")  
Article  
![Avatar of jsPlainEnglish](https://media.daily.dev/image/upload/s--Dg5QTRuI--/f_auto,q_auto/v1686665538/logos/pe)JavaScript in Plain English · 6y  
Many Developers Struggle With Explaining APIs  
Many newcomers struggle with this concept, and many get some vague ideas about it and assume that they know what it is. API is some code that you didn’t write yourself, and that code has some methods that you are allowed to call. It could be something that you download and run from your computer or it could besomething that’s someplace else on the web.  
14  
2
16. 16  
[](https://daily.dev/posts/how-to-check-if-a-variable-is-a-number-in-javascript-b6ezzce9u "How To Check If A Variable Is A Number In JavaScript")  
Article  
![Avatar of jsPlainEnglish](https://media.daily.dev/image/upload/s--Dg5QTRuI--/f_auto,q_auto/v1686665538/logos/pe)JavaScript in Plain English · 6y  
How To Check If A Variable Is A Number In JavaScript  
Here are 3 ways that you can check Sanchitha SR's number validation in Vue. In JavaScript, special values like NaN and -Infinity are numbers too. Using isNan() determines whether a value is NaN or not. Using typeof() returns a string indicating the type of the unevaluated operand.  
14
17. 17  
[](https://daily.dev/posts/8-ridiculous-npm-packages-i-wish-didn-t-exist-jybur8ows "8 Ridiculous NPM Packages I Wish Didn’t Exist")  
Article  
![Avatar of jsPlainEnglish](https://media.daily.dev/image/upload/s--Dg5QTRuI--/f_auto,q_auto/v1686665538/logos/pe)JavaScript in Plain English · 6y  
8 Ridiculous NPM Packages I Wish Didn’t Exist  
The Node Package Manager (npm) is very open about what packages you can publish or not. Over the years there are some awesome packages that we all want and love. We will see some ridiculous packages and try to understand why they exists in the first place. After reading you will wish the same too Mohammad Faisal.  
12  
7
18. 18  
[](https://daily.dev/posts/why-do-we-need-promises-in-javascript--tep0hnmvg "Why do we need promises in JavaScript?")  
Article  
![Avatar of jsPlainEnglish](https://media.daily.dev/image/upload/s--Dg5QTRuI--/f_auto,q_auto/v1686665538/logos/pe)JavaScript in Plain English · 6y  
Why do we need promises in JavaScript?  
13
19. 19  
[](https://daily.dev/posts/how-to-tackle-these-common-node-js-mongo-api-security-problems-sfvn6u-w6 "How to tackle these common Node.js/Mongo API Security Problems")  
Article  
![Avatar of jsPlainEnglish](https://media.daily.dev/image/upload/s--Dg5QTRuI--/f_auto,q_auto/v1686665538/logos/pe)JavaScript in Plain English · 6y  
How to tackle these common Node.js/Mongo API Security Problems  
API Security is the protection of the integrity of APIs that we use and own. Most businesses use API to connect services and to transfer data. To overcome this issue you can use the express-mongo-sanitize package. The helmet helps you secure your Express apps by setting various HTTP headers.  
13  
1
20. 20  
[](https://daily.dev/posts/document-your-react-applications-the-right-way-ewz0hdnvw "Document Your React Applications The Right Way")  
Article  
![Avatar of jsPlainEnglish](https://media.daily.dev/image/upload/s--Dg5QTRuI--/f_auto,q_auto/v1686665538/logos/pe)JavaScript in Plain English · 6y  
Document Your React Applications The Right Way  
Document Your React Applications The Right Way Step by Step Introduction Guide Mohammad Faisal. When Documentation Becomes Important? You have multiple teams working on the same project. Good documentation can sometimes work as a style guide for others. There are many ways today we will be using react-styleguidist.  
13  
1
21. 21  
[](https://daily.dev/posts/two-dimensional-timeline-a-way-to-think-about-asynchronous-javascript--uq57fuod "Two dimensional timeline — A way to think about asynchronous JavaScript")  
Article  
![Avatar of jsPlainEnglish](https://media.daily.dev/image/upload/s--Dg5QTRuI--/f_auto,q_auto/v1686665538/logos/pe)JavaScript in Plain English · 6y  
Two dimensional timeline — A way to think about asynchronous JavaScript  
Two dimensional timeline — A way to think about asynchronous JavaScript To visualise the order of execution of asynchronous operations Jack Siu Follow Jan 8 · 6 min read I remember when I first worked in JavaScript, I found it difficult to understand how to correctly handle asynchronous operations. I made some common mistakes like assuming AJAX is synchronous which causes my function always returning undefined.  
12  
1
22. 22  
[](https://daily.dev/posts/replacing-lifecycle-methods-with-react-hooks-zeqadt1ox "Replacing Lifecycle methods with React Hooks")  
Article  
![Avatar of jsPlainEnglish](https://media.daily.dev/image/upload/s--Dg5QTRuI--/f_auto,q_auto/v1686665538/logos/pe)JavaScript in Plain English · 6y  
Replacing Lifecycle methods with React Hooks  
12  
1
23. 23  
[](https://daily.dev/posts/implementing-a-linked-list-in-es6-javascript-1--58gzcf "Implementing a Linked List in ES6 JavaScript")  
Article  
![Avatar of jsPlainEnglish](https://media.daily.dev/image/upload/s--Dg5QTRuI--/f_auto,q_auto/v1686665538/logos/pe)JavaScript in Plain English · 6y  
Implementing a Linked List in ES6 JavaScript  
A linked list is a data structure composed of nodes. Each node has at least 2 components, the data that it holds and a reference to the next node in the list. There are several kinds of linked lists. Singly linked lists only contain a pointer to the node after them, doubly linked lists contain a pointers to the nodes before and after them. In circular linked lists the tail points to a node earlier in the. list (generally the head) as the following node.  
12  
1

[See all JavaScript in Plain English archives](/sources/jsPlainEnglish/best-of)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@graph":[{"@type":"CollectionPage","@id":"https://daily.dev/sources/jsPlainEnglish/best-of/2021/01#page","url":"https://daily.dev/sources/jsPlainEnglish/best-of/2021/01","name":"Best JavaScript in Plain English Posts — January 2021","description":"The most upvoted JavaScript in Plain English posts from January 2021, curated by the daily.dev community.","isPartOf":{"@type":"WebSite","url":"https://daily.dev"}},{"@type":"ItemList","@id":"https://daily.dev/sources/jsPlainEnglish/best-of/2021/01#items","numberOfItems":23,"itemListElement":[{"@type":"ListItem","position":1,"url":"https://daily.dev/posts/what-is-proto-in-javascript--emzjamic2","name":"What is __proto__ in JavaScript?"},{"@type":"ListItem","position":2,"url":"https://daily.dev/posts/create-a-dark-mode-theme-switch-with-gatsby-and-tailwindcss--v4a3z-px","name":"Create a dark mode theme switch with Gatsby and TailwindCSS"},{"@type":"ListItem","position":3,"url":"https://daily.dev/posts/how-to-create-an-awesome-github-profile-readme-g6j3paif4","name":"How To Create An Awesome Github Profile README"},{"@type":"ListItem","position":4,"url":"https://daily.dev/posts/these-4-websites-will-improve-your-web-development-efficiency-gabh8zay7","name":"These 4 Websites Will Improve Your Web Development Efficiency"},{"@type":"ListItem","position":5,"url":"https://daily.dev/posts/use-sql-query-builder-knex-js-with-node-js-and-express-js-og3q-m5jb","name":"Use SQL Query Builder Knex.js with Node.js and Express.js"},{"@type":"ListItem","position":6,"url":"https://daily.dev/posts/5-good-practices-of-successful-programmers-wmbwzk7k5","name":"5 Good Practices of Successful Programmers"},{"@type":"ListItem","position":7,"url":"https://daily.dev/posts/how-model-view-controller-mvc-architectures-work-flbftxxfd","name":"How Model View Controller (MVC) Architectures Work"},{"@type":"ListItem","position":8,"url":"https://daily.dev/posts/4-javascript-frameworks-you-should-consider-for-your-next-web-app-ecslrb-oj","name":"4 JavaScript Frameworks You Should Consider For Your Next Web App"},{"@type":"ListItem","position":9,"url":"https://daily.dev/posts/top-5-programming-languages-to-learn-in-2021-ogdo4nfy7","name":"Top 5 Programming Languages to learn in 2021"},{"@type":"ListItem","position":10,"url":"https://daily.dev/posts/4-must-know-higher-order-functions-in-javascript-zxrhwbwwz","name":"4 Must-Know Higher-Order Functions in JavaScript"},{"@type":"ListItem","position":11,"url":"https://daily.dev/posts/5-frontend-interview-questions-to-help-you-master-asynchronous-javascript-5vnlownky","name":"5 Frontend Interview Questions To Help You Master Asynchronous JavaScript"},{"@type":"ListItem","position":12,"url":"https://daily.dev/posts/intro-to-react-server-side-rendering-qniqtzwfo","name":"Intro to React Server Side Rendering"},{"@type":"ListItem","position":13,"url":"https://daily.dev/posts/node-js-redis-improved-performance-lopgf9nyf","name":"Node.js + Redis = Improved Performance"},{"@type":"ListItem","position":14,"url":"https://daily.dev/posts/what-are-callback-functions-in-javascript--2x7buwvha","name":"What Are Callback Functions In JavaScript?"},{"@type":"ListItem","position":15,"url":"https://daily.dev/posts/many-developers-struggle-with-explaining-apis-dunehbcrb","name":"Many Developers Struggle With Explaining APIs"},{"@type":"ListItem","position":16,"url":"https://daily.dev/posts/how-to-check-if-a-variable-is-a-number-in-javascript-b6ezzce9u","name":"How To Check If A Variable Is A Number In JavaScript"},{"@type":"ListItem","position":17,"url":"https://daily.dev/posts/8-ridiculous-npm-packages-i-wish-didn-t-exist-jybur8ows","name":"8 Ridiculous NPM Packages I Wish Didn’t Exist"},{"@type":"ListItem","position":18,"url":"https://daily.dev/posts/why-do-we-need-promises-in-javascript--tep0hnmvg","name":"Why do we need promises in JavaScript?"},{"@type":"ListItem","position":19,"url":"https://daily.dev/posts/how-to-tackle-these-common-node-js-mongo-api-security-problems-sfvn6u-w6","name":"How to tackle these common Node.js/Mongo API Security Problems"},{"@type":"ListItem","position":20,"url":"https://daily.dev/posts/document-your-react-applications-the-right-way-ewz0hdnvw","name":"Document Your React Applications The Right Way"},{"@type":"ListItem","position":21,"url":"https://daily.dev/posts/two-dimensional-timeline-a-way-to-think-about-asynchronous-javascript--uq57fuod","name":"Two dimensional timeline — A way to think about asynchronous JavaScript"},{"@type":"ListItem","position":22,"url":"https://daily.dev/posts/replacing-lifecycle-methods-with-react-hooks-zeqadt1ox","name":"Replacing Lifecycle methods with React Hooks"},{"@type":"ListItem","position":23,"url":"https://daily.dev/posts/implementing-a-linked-list-in-es6-javascript-1--58gzcf","name":"Implementing a Linked List in ES6 JavaScript"}]},{"@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Sources","item":"https://daily.dev/sources"},{"@type":"ListItem","position":3,"name":"JavaScript in Plain English","item":"https://daily.dev/sources/jsPlainEnglish"},{"@type":"ListItem","position":4,"name":"Best of","item":"https://daily.dev/sources/jsPlainEnglish/best-of"},{"@type":"ListItem","position":5,"name":"January 2021"}]}]}
```

