2022 JavaScript Rising Stars | | 839 |
frameworks, react, vuejs, building, testing, tooling, mobile, desktop, state-management, css-in-js, graphql, retrospectives |
Top 13 Templating Engines for JavaScript to Improve and Simplify Your Workflow 2023 (sta) | | 838 |
template-engines, mustache, handlebars, nunjucks, pug, comparisons, link-lists |
Use nvm and .nvmrc for a Better JavaScript Development | | 837 |
nvm, nodejs |
Conditional API Responses for JavaScript vs. HTML Forms (aus) | | 836 |
html, forms, security, comparisons |
Cloning Arrays and Objects in Vanilla JavaScript (cfe) | | 835 |
arrays, objects |
Intro to JavaScript Closures | | 834 |
introductions, closures |
React JS Best Practices From the New Docs | | 833 |
react, best-practices, jsx, aria |
JavaScript Frameworks—Heading Into 2023 (rya/thi) | | 832 |
frameworks |
Signals: The Nitty-Gritty (web) | | 831 |
performance, signals |
Building an Accessible Theme Picker With HTML, CSS, and JavaScript (fos) | | 830 |
accessibility, html, css, theming, functionality |
Pointer Events (5t3) | | 829 |
css, pointer-events, apis |
Using Inline JavaScript Modules to Prevent CSS Blockage (sto) | | 828 |
performance, css |
ECMAScript Proposal: Iterator Helpers (rau) | | 827 |
ecmascript, standards |
Get Off the Main Thread With an Inline Web Worker: An Example (sto) | | 826 |
performance, web-workers, examples |
The Most Popular CSS-in-JS Libraries in 2022 (sta) | | 825 |
libraries, css, css-in-js |
An Interactive Guide to JavaScript Events (ale) | | 824 |
guides, events, examples |
How to Merge Objects in JavaScript (sta) | | 823 |
how-tos, objects |
JavaScript Polyfills for Interviews | | 822 |
polyfills, interviewing |
Using SRI to Protect From Malicious JavaScript (mat) | | 821 |
security |
Developing Faster JavaScript Apps: The Ultimate Guide to Web Workers (cra) | | 820 |
guides, web-apps, performance, web-workers |
Tips for Typing Import Statements in JavaScript (rau) | | 819 |
|
5 Ways to Make Your JavaScript More Functional | | 818 |
programming |
Speeding Up the JavaScript Ecosystem—One Library at a Time (mar) | | 817 |
performance, libraries |
Convert Any Value to a Boolean in JavaScript (ami) | | 816 |
|
Document Object Model (DOM) Geometry: A Beginner’s Introduction and Guide (sma) | | 815 |
introductions, guides, dom |
Our Future CSS Strategy | | 814 |
css, css-in-js, strategies, case-studies |
State of JavaScript 2022 (sac/dev) | | 813 |
surveys |
A Guide to Keyboard Accessibility: JavaScript (its/sma) | | 812 |
guides, accessibility, keyboard-navigation |
Days Since Last JS Framework | | 811 |
websites, frameworks |
Back to Basics: What are Callbacks in JavaScript? | | 810 |
fundamentals, callbacks |
Spy On “window.postMessage” Calls (bah) | | 809 |
cypress, testing |
Generating Slugs Using One Line of Code in JavaScript (ami) | | 808 |
|
Why Would Anyone Need JavaScript Generator Functions? | | 807 |
functions |
Saved From Callback Hell | | 806 |
callbacks |
Client-Side Routing Without the JavaScript (rya/thi) | | 805 |
performance, frameworks |
An Overview of JavaScript Promises | | 804 |
overviews, promises |
7 Shorthand Optimization Tricks Every JavaScript Developer Should Know | | 803 |
optimization |
What Is a Realm in JavaScript? | | 802 |
|
Motion Controls in the Browser (sma) | | 801 |
browsers, permissions |
Guide to the Best JavaScript Books for Beginners | | 800 |
guides, books, link-lists |
Detect System Theme Preference Change Using JavaScript (dav) | | 799 |
dark-mode |
JavaScript Shallow Copy—What Is a Shallow Copy? | | 798 |
|
Why I Never Understood CSS-in-JS (cit) | | 797 |
css, css-in-js |
Secure JavaScript URL Validation (sny) | | 796 |
validation, urls, security |
Why We’re Breaking Up With CSS-in-JS | | 795 |
css, css-in-js |
Two JavaScripts (rem) | | 794 |
|
Speeding Up Async Snippets (css) | | 793 |
performance, asynchronicity |
Bun? Deno? Node.js? Creating Your Own JavaScript Runtime Using V8, Libuv, and More | | 792 |
videos, runtimes, v8 |
Quick Tip: How to Use the Ternary Operator in JavaScript | | 791 |
how-tos, operators, tips-and-tricks |
Delightful UI Animations With Shared Element Transitions API II (cod/sma) | | 790 |
animations, transitions, apis |
Understanding “async” and “await” | | 789 |
asynchronicity |
How to Safely Pass Data to JavaScript in a Django Template (ada) | | 788 |
how-tos, django |
Quick Tip: How to Use the Spread Operator in JavaScript | | 787 |
how-tos, operators, tips-and-tricks |
The Missing Math Methods in JavaScript | | 786 |
math |
The Difference Between “undefined” and “not defined” in JavaScript | | 785 |
|
I Turned JS Into a Compiled Language (for Fun and Wasm) (sur) | | 784 |
compiling, webassembly |
I Changed My Mind About Writing New JavaScript Frameworks (whi) | | 783 |
frameworks |
Delightful UI Animations With Shared Element Transitions API (cod/sma) | | 782 |
animations, transitions, apis |
Templating in HTML (kit) | | 781 |
html |
Optimize Long Tasks (mal/dev) | | 780 |
performance, optimization |
Let Me Understand How JavaScript Works Under the Hood | | 779 |
|
How to Return Multiple Values From a Function in JavaScript (ami) | | 778 |
how-tos, functions |
Useful JavaScript Math Functions and How to Use Them | | 777 |
math, functions |
Named Element IDs Can Be Referenced as JavaScript Globals (css) | | 776 |
html |
Dear Console… (cod) | | 775 |
console |
The New Wave of JavaScript Web Frameworks | | 774 |
frameworks, react, vuejs, svelte, solidjs |
JavaScript (mal/htt) | | 773 |
web-almanac, studies, research, metrics |
How to Get All Sibling Elements of a Link or Button With Vanilla JavaScript (cfe) | | 772 |
how-tos, links, buttons |
K-Means Clustering Visualization Using D3.js | | 771 |
visualization |
Writing Composable SQL Using JavaScript | | 770 |
databases, sql |
Rest vs. Spread Syntax in JavaScript (ami) | | 769 |
comparisons |
How to Generate Random Numbers in JavaScript With “Math.random()” | | 768 |
how-tos, math, randomness |
How to Get the Current Timestamp in JavaScript | | 767 |
how-tos |
Building a Retro Draggable Web Component With Lit (and/sma) | | 766 |
web-components |
Total Blocking Time: A Short and Sweet Guide for Happier Users (ben/cal) | | 765 |
performance |
7 Must Know JavaScript Tips and Tricks | | 764 |
tips-and-tricks |
A Guide to Rounding Numbers in JavaScript | | 763 |
guides |
JavaScript APIs You Don’t Know About (mon/sma) | | 762 |
apis |
Conditionally Spreading Objects in JavaScript (ami) | | 761 |
objects |
The Seventh Way to Call a JavaScript Function Without Parentheses | | 760 |
functions |
Mastering DOM Manipulation With Vanilla JavaScript | | 759 |
dom |
Make It Short—Make It Better | | 758 |
minimalism |
What’s New With Forms in 2022? (oll/css) | | 757 |
forms, html |
A Quick Primer on Testing JavaScript (cfe) | | 756 |
introductions, testing |
Detect When Users Switch Tabs Using JavaScript | | 755 |
|
The Art of Writing Secrets: Encryption for JavaScript Developers | | 754 |
cryptography, encryption |
Disabled JavaScript Turns Off Native Lazy Loading (ste) | | 753 |
html, performance, lazy-loading |
Dear Oracle, Please Release the JavaScript Trademark (tin) | | 752 |
licensing, legal, oracle |
Useful JavaScript Data Grid Libraries (sma) | | 751 |
libraries, grids, information-design, comparisons |
Default Exports in JavaScript Modules Are Terrible | | 750 |
|
JavaScript Bugs Aplenty in Node.js Ecosystem—Found Automatically | | 749 |
studies, research, nodejs, dependencies, security, quality |
Monitor Events and Function Calls via Console (dav) | | 748 |
events, monitoring |
Implementing Promisable “setTimeout” | | 747 |
time |
What Is a REST API? (cra) | | 746 |
apis, rest |
Tracking the World in About 80 Lines of JavaScript (kzi) | | 745 |
privacy |
How to Use localStorage in JavaScript: An Easy Guide | | 744 |
how-tos, browser-storage, guides |
Re-Implementing JavaScript’s “==” in JavaScript (eva) | | 743 |
operators |
An Introduction to Context Propagation in JavaScript (sma) | | 742 |
introductions |
Dependency Injection in JS/TS | | 741 |
typescript |
The Console API | | 740 |
console, apis |
Custom Event Naming Conventions (cfe) | | 739 |
events, naming |
TypeScript vs. JavaScript: Which One You Should Use, and Why | | 738 |
typescript, comparisons |
Code Golfing Tips and Tricks: How to Minify Your JavaScript Code | | 737 |
how-tos, minification, tips-and-tricks |
The JavaScript Paradox (rya/thi) | | 736 |
|
Light/Dark Mode | | 735 |
css, dark-mode |
Checking if a JavaScript Native Function Is Monkey Patched | | 734 |
functions |
Adding Observability to Your Jest Tests | | 733 |
jest, testing, observability |
Everything You Need to Know About JavaScript Import Maps (hon) | | 732 |
dependencies, import-maps |
The History of JavaScript | | 731 |
history |
Type Annotations in JavaScript | | 730 |
typescript, annotations |
Front-End Internationalisation Tips | | 729 |
internationalization, fonts, css |
RedwoodJS vs. BlitzJS: The Future of Fullstack JavaScript Meta-Frameworks | | 728 |
frameworks, redwoodjs, comparisons |
15 Common Beginner JavaScript Mistakes | | 727 |
mistakes |
The 10 Most Common JavaScript Issues Developers Face | | 726 |
mistakes |
JavaScript SDK “Package Size Is Massive”—So We Reduced It by 29% (sen) | | 725 |
optimization, tree-shaking |
Hacking JavaScript Objects | | 724 |
objects |
Useful Tips and Tricks in JavaScript | | 723 |
tips-and-tricks |
JSON Creator Douglas Crockford Interview (dou) | | 722 |
interviews |
The “Array.prototype.at()” Method in Vanilla JavaScript (cfe) | | 721 |
prototypes |
Integer Math in JavaScript | | 720 |
math |
Statements vs. Expressions (jos) | | 719 |
comparisons |
JavaScript Obfuscation Techniques by Example | | 718 |
obfuscation, techniques, examples |
Frontend Web Performance: The Essentials | | 717 |
fundamentals, performance |
Using JavaScript to Fill localStorage to Its Maximum Capacity | | 716 |
browser-storage |
Stop the Screen Going to Sleep With JavaScript | | 715 |
|
In Defense of Blocks for Local Scopes | | 714 |
scope |
In Defense of Blocks for Local Scopes II | | 713 |
scope |
Svelte Origins: A JavaScript Documentary | | 712 |
videos, svelte |
Future Features of JS (jsn) | | 711 |
videos |
How to Remove 99% of JavaScript From Main Thread (wea) | | 710 |
videos, how-tos, performance |
You Don’t Need a JavaScript Library for Your Components | | 709 |
libraries, components |
Understanding the JavaScript Window Object | | 708 |
objects |
AbortController Is Your Friend | | 707 |
|
Modern JavaScript, 10 Things You Should Be Using, Starting Today | | 706 |
|
JavaScript Hydration Is a Workaround, Not a Solution (the) | | 705 |
hydration |
Patterns for Building JavaScript Websites in 2022 (rya/thi) | | 704 |
frameworks, comparisons |
Mathematical Notation for JavaScript Developers Explained | | 703 |
math |
Optimize the Use of “if–else” | | 702 |
|
Shallow Copy and Deep Copy | | 701 |
|
Monorepos in JavaScript and TypeScript (rwi) | | 700 |
typescript, monorepos |
JavaScript of Halftone Printing | | 699 |
print |
Processing Arrays Non-Destructively: “for-of” vs. “.reduce()” vs. “.flatMap()” (rau) | | 698 |
arrays, comparisons |
JavaScript Closures, Explained | | 697 |
closures |
Understanding Weak Reference in JavaScript (sma) | | 696 |
|
Snyk Finds 200+ Malicious npm Packages, Including Cobalt Strike Dependency Confusion Attacks (sny) | | 695 |
npm, dependencies, security |
RFC 9239: Updates to ECMAScript Media Types (rau) | | 694 |
mime-types |
Building a Button Component (arg/dev) | | 693 |
components, html, css, buttons |
Reduce Array of Objects to an Object in JavaScript (ami) | | 692 |
arrays, objects |
Does JavaScript Make My Site Less Accessible? | | 691 |
accessibility, wcag |
How to Use Google CrUX to Analyze and Compare the Performance of JS Frameworks (sma) | | 690 |
how-tos, performance, google, metrics, frameworks |
How to Learn JavaScript Fast: Six Simple Mind Tricks | | 689 |
how-tos, tips-and-tricks, learning |
You Don’t Need “void 0” | | 688 |
|
The Road to Universal JavaScript | | 687 |
|
Fetch API Is [the] New Old Version of AJAX | | 686 |
data-fetching, apis, ajax |
Master Higher-Order Functions in JavaScript | | 685 |
functions |
JavaScript Containers (tin) | | 684 |
outlooks |
8 JavaScript Quiz [Questions] That May Confuse You | | 683 |
quizzes, interviewing |
CTA Modal: How to Build a Web Component (sma) | | 682 |
how-tos, web-components, modals |
Common Frontend Interview Questions I’ve Been Asked | | 681 |
interviewing, html |
Web Scraping via JavaScript Runtime Heap Snapshots | | 680 |
scraping, memory |
Learn to Code With JavaScript: The Most Popular Programming Language on Earth | | 679 |
learning |
What Is Memoization? How and When to Memoize in JavaScript and React (fre) | | 678 |
memoization, react |
Build a Lightweight Web Component With Lit.js | | 677 |
web-components |
Four Eras of JavaScript Frameworks | | 676 |
frameworks, history |
Faster Initialization of Instances With New Class Features | | 675 |
browsers, javascript-engines, v8, performance |
The Ultimate Guide to Optimizing JavaScript for Quick Page Loads (ste/bui) | | 674 |
guides, performance, optimization |
Building a Dialog Component (arg/dev) | | 673 |
components, modals, html, css |
JavaScript Function Composition: What’s the Big Deal? | | 672 |
functions |
33 JavaScript Concepts Every Developer Should Know | | 671 |
concepts |
JavaScript and Node.js Testing Best Practices | | 670 |
nodejs, testing, best-practices |
Locale Aware Sorting in JavaScript | | 669 |
sorting, localization, internationalization |
14 Linting Rules to Help You Write Asynchronous Code in JavaScript | | 668 |
asynchronicity, linting |
When to Use a Function Expression vs. Function Declaration | | 667 |
functions, comparisons |
Conquering JavaScript Hydration (rya/thi) | | 666 |
hydration |
Performance Tests on Common JavaScript Array Methods (hac) | | 665 |
performance, testing, arrays |
How to Make a Drag-and-Drop File Uploader With Vue.js 3 (sma) | | 664 |
how-tos, file-handling, vuejs |
A Quick Guide to Closures | | 663 |
guides, closures |
Building a Loading Bar Component (arg/dev) | | 662 |
components, html, css |
Accessibility, Assistive Technology, and JavaScript (cfe) | | 661 |
accessibility, assistive-tech |
Implementing JavaScript Delay for Cookie Consent Banner | | 660 |
cookies, consent-management, legal |
How to Automatically Size a Textarea Based on Its [Text] Using Vanilla JavaScript (cfe) | | 659 |
how-tos, html |
Horizontal Scrolling Nav (mdo) | | 658 |
scrolling |
Arrow Functions in JavaScript: How to Use Fat and Concise Syntax | | 657 |
how-tos, functions |
Can I Use Hover on Touch Devices? Here’s [a] CSS and JS Hack | | 656 |
css, mobile |
CommonJS (CJS) and Modules (ESM): Import Compatibility | | 655 |
typescript, commonjs, esm |
A Look at the Dialog Element’s Super Powers (ste) | | 654 |
modals, html |
JavaScript Naming Conflicts: How Existing Code Can Force Proposed Features to Be Renamed (rau) | | 653 |
naming, refactoring |
Why I Avoid “async”/“await” | | 652 |
asynchronicity |
Creating Native Web Components (cod) | | 651 |
web-components, html |
It’s Always Been You, Canvas2D (dev) | | 650 |
html, css, canvas |
How to Use Higher-Order Functions in JavaScript | | 649 |
how-tos, functions |
How Do Primitive Values Get Their Properties? (rau) | | 648 |
|
5 Things You Don’t Need JavaScript For | | 647 |
|
How to Build a File Upload Service With Vanilla JavaScript (log) | | 646 |
how-tos, file-handling |
Essential Cryptography for JavaScript Developers | | 645 |
books, cryptography |
HTML Comments Work in JavaScript Too | | 644 |
html, comments |
What Is Responsible JavaScript? (mal+/sma) | | 643 |
podcasts |
You Can “throw()” Anything in JavaScript—and Other “async”/“await” Considerations | | 642 |
asynchronicity |
Comparing Node JavaScript to JavaScript in the Browser (css) | | 641 |
nodejs, browsers, comparisons |
JavaScript Obfuscation: The Definitive Guide (2022) | | 640 |
guides, obfuscation |
How to Create a Search Page for a Static Website With Vanilla JS (cfe) | | 639 |
how-tos, functionality, search, html |
The State of JavaScript 2021 [Results] (sac/dev) | | 638 |
surveys |
The Harsh Reality for JavaScript Developers: If You Don’t Study the Fundamentals You Will Be Just Another “Coder” | | 637 |
fundamentals, career |
Track Down the JavaScript Code Responsible for Polluting the Global Scope | | 636 |
scope |
7 Killer One-Liners in JavaScript | | 635 |
|
Moving From JavaScript to TypeScript | | 634 |
typescript |
Debugging JavaScript (fla) | | 633 |
debugging |
New in JavaScript: “reportError”—a Method to Report to Global Event Handlers (ste) | | 632 |
events |
Move Over JavaScript: Back-End Languages Are Coming to the Front-End (kli/git) | | 631 |
|
Creating Generative SVG Grids | | 630 |
svg, grids |
What Web Frameworks Solve: The Vanilla Alternative (nom/sma) | | 629 |
frameworks, react |
Why Efficient Hydration in JavaScript Frameworks Is So Challenging (rya/thi) | | 628 |
frameworks, hydration |
The Impact of Motion Animation on Cognitive Disability (tpg) | | 627 |
accessibility, css |
Improving JavaScript Bundle Performance With Code-Splitting (cod/sma) | | 626 |
performance, bundling, code-splitting, optimization |
Preventing Smooth Scrolling With JavaScript (kil) | | 625 |
scrolling |
A More Easy Way to Write “if … or” Checks With Vanilla JavaScript (cfe) | | 624 |
|
A Pipe Operator for JavaScript: Introduction and Use Cases (rau) | | 623 |
introductions, operators |
The Double-Assignment Pattern in jQuery’s Source Code | | 622 |
jquery |
Context-Aware Web Components Are Easier Than You Think (css) | | 621 |
web-components, html |
The Many Ways to Modify Leading and Trailing Characters From Strings With JavaScript (cfe) | | 620 |
strings |
Frontend Challenges: Front-End Engineer Assignment | | 619 |
react, typescript, training |
“structuredClone()”: Deeply Copying Objects in JavaScript (rau) | | 618 |
objects |
Two Ways to Clear an Array With Vanilla JavaScript (cfe) | | 617 |
arrays |
8 Techniques to Write Cleaner JavaScript Code | | 616 |
|
Add a Service Worker to Your Site (cfe/css) | | 615 |
web-workers |
Be Prepared for Failure and Handle It Gracefully (css) | | 614 |
graceful-degradation |
How to Add and Remove a CSS Class From Multiple Elements With Vanilla JavaScript (cfe) | | 613 |
how-tos, css |
CSS Houdini Paint API (5t3) | | 612 |
css, houdini, apis |
Deep-Copying in JavaScript Using “structuredClone” (sur/dev) | | 611 |
|
Performance Implications of JavaScript Errors | | 610 |
performance, errors |
Intersection Observer (5t3) | | 609 |
apis |
Embrace the Platform (bra/css) | | 608 |
html, css, web-platform |
JSON Modules in JavaScript | | 607 |
json, modules |
Best Practices for Node.js Development | | 606 |
nodejs, best-practices |
JavaScript (htt) | | 605 |
web-almanac, studies, research, metrics |
How to Trim Strings in JavaScript | | 604 |
how-tos, strings |
How JavaScript Engines Achieve Great Performance | | 603 |
javascript-engines, performance |
How to Make Blob Menu Using HTML, CSS, and JavaScript | | 602 |
how-tos, html, css |
Why IndexedDB Is Slow and What to Use Instead | | 601 |
databases, indexeddb, performance |
Chrome DevTools: Copy CSS Styles as JavaScript-Compatible Properties | | 600 |
dev-tools, css, browsers, google, chrome |
How to Debounce and Throttle Callbacks in Vue | | 599 |
how-tos, vuejs, callbacks, debouncing, throttling |
Using Web Workers to Boost Third-Party Script Performance (log) | | 598 |
web-workers, performance |
Localizing Your Next.js App (ati/sma) | | 597 |
nextjs, localization |
Designing Error Messages and a Logging Strategy in Node.js (app) | | 596 |
software-design, nodejs, logging, strategies |
A Comprehensive Guide to Error Handling in Node.js (hon) | | 595 |
guides, nodejs, errors |
Accessible Toggles (mic) | | 594 |
accessibility, toggles, html |
HTMLoween—HTML, JS, and CSS to Make Your Blood Boil | | 593 |
html, css |
Chrome DevTools: Visualise Your JavaScript Bundles | | 592 |
dev-tools, bundling, browsers, google, chrome, lighthouse, visualization |
In-Page Filtered Search With Vanilla JavaScript (css) | | 591 |
functionality, search |
11 Methods to Add CSS/JS Frontend Assets Into TYPO3 (t3p) | | 590 |
typo3, css, examples |