DEV Community

Cover image for 10 best Javascript libraries in 2020.
HARSH VATS
HARSH VATS

Posted on

10 best Javascript libraries in 2020.

  1. Ramda
    Ramda is a cool JavaScript library for functional programming and currently has 18,000 Stars on GitHub. One of the beauties of JavaScript is that developers can choose whether they like functional or object-oriented programming. There are pros and cons for both philosophies, but if you like functional programming, you should definitely check out Ramda.
    Key features are:
    Immutability and functions free from side effects
    Automatically curried functions
    Parameters arranged to Ramda functions for convenient currying.

  2. Lodash
    Lodash still is one of the most popular and useful JavaScript libraries out there. It takes the hassle out of working with strings, arrays, objects, etc. It currently has 43,000 Stars on GitHub.
    Useful features are:
    Iterating over strings, objects, and arrays
    Creating composite functions
    Manipulating and testing values.

  3. Moment
    Moment is probably the best JavaScript library if you have to deal with manipulating, validating, parsing, or formatting dates. It’s lightweight, well-established, and has 43,000+ Stars on GitHub. It works both in the browser and with Node.js.

  4. Highlight.js
    Hightlight.js is a library for syntax highlighting working both in the browser and on the server. It works with almost any markdown and comes with automatic language detection.

  5. D3
    D3 is the most popular library for Data Visualization with currently 89,500 Stars on GitHub. It uses web standards and helps you bring data to life with HTML, SVG, and CSS, making use of the power of modern browsers.

  6. Three.js
    Three.js is an outstanding 3D library for JavaScript that uses WebGL as the primary renderer but also supports other renderers like Canvas 2D, SVG, and CSS3D. It has 58,000 Stars on GitHub, and you can create really cool things with it.

  7. Voca
    Voca is a great JavaScript library for manipulating strings. It is supported long-term and currently has 2,800 Stars on GitHub. You can use it for manipulating strings such as change case, trim, pad, slugify, latinise, truncate, escape, etc.
    Other features are:
    Complete set of functions to manipulate, chop, format, escape and query strings
    An easy-to-read and searchable documentation
    Supports a wide range of environments, e. g., Chrome, Firefox, Node.js
    100% code coverage and no dependencies.

  8. Immutable.js
    Working with immutable data structures has some major advantages like simplified application development, no defensive copying, and advanced memoization concepts.
    Immutable.js gives you immutable data structures like List, Stack, Map, Set and more.

  9. Hammer.js
    Hammer.js is a JavaScript library with 20,900 GitHub Stars that brings multi-touch gestures to your web apps. It is small, does not have any dependencies, and can recognize gestures made by touch, mouse, or pointer events. By default it adds recognizers for tap, doubleTap, swipe, press, etc. but you can define your own sets of such recognizers.

  10. Leaflet
    Leaflet is a great JavaScript library when it comes to creating mobile-friendly interactive maps. It is open source, has 26,700 Stars on GitHub, is very lightweight, and has all the features most developers ever need.
    It works on all major mobile and desktop platforms out of the box, can be extended through plugins, and has a well-documented, simple API.

Top comments (5)

Collapse
 
cmarker profile image
Christian πŸ‡³πŸ‡΄ • Edited

Moment.js doesn't support treeshaking and therefore is rather huge in terms of size.
I would rather recommend date.fns or just the native date library. Which is more capable than many expect
Ref: github.com/you-dont-need/You-Dont-...

Collapse
 
andrewbaisden profile image
Andrew Baisden

Agreed date.fns seems to be more popular these days too.

Collapse
 
shriji profile image
Shriji

You could link the respective github repo in the article!

Collapse
 
michi profile image
Michael Z

To manipulate strings and other types I also created a library which has many more features over voca: github.com/MZanggl/flooent

Collapse
 
captainawesomedi profile image
Di Wu

no love for rxjs