Need advice about which tool to choose?Ask the StackShare community!

Lodash

7.5K
886
+ 1
3
Underscore

1.8K
589
+ 1
290
Add tool

Underscore vs lodash: What are the differences?

Introduction

Underscore and lodash are both popular utility libraries for JavaScript. They provide a wide range of functions and methods to assist in manipulating arrays, objects, and other data types. While they have many similarities, there are a few key differences between Underscore and lodash that are worth mentioning.

  1. Performance: One of the main differences between Underscore and lodash is their performance. Lodash is generally faster than Underscore when it comes to executing functions and operations. This is due to lodash's focus on optimized algorithms and performance improvements over Underscore.

  2. Modularity: Lodash offers modularized functions, which means that you can import only the functions that you need, instead of importing the whole library. This can help reduce the size of your JavaScript bundle, as well as improve load times. On the other hand, Underscore does not provide this level of modularity, requiring you to import the entire library even if you only need a few functions.

  3. Additional Functions: Lodash provides some additional functions that are not available in Underscore. These additional functions can be quite useful in certain scenarios, such as deep cloning objects, manipulating strings, and working with dates. Underscore, on the other hand, may not have these specific functions built-in.

  4. Chaining: Lodash supports method chaining, which allows you to chain multiple functions together in a single expression. This can greatly simplify and enhance the readability of your code. Underscore, although it provides similar functions, does not offer built-in method chaining.

  5. Compatibility: Lodash is designed to be more compatible with newer versions of JavaScript, including ECMAScript 6 (ES6) features. It implements many of the ES6 functions and methods that may not be available in older browsers. Underscore, on the other hand, may not have full support for these newer JavaScript features.

  6. Community support: Lodash has a larger and more active community compared to Underscore. This means that there is a larger pool of developers who can provide support, contribute to the library, and create plugins or extensions for specific use cases. Additionally, lodash has better documentation, making it easier to learn and use for developers.

In summary, lodash offers better performance, modularity, additional functions, method chaining, compatibility with newer JavaScript versions, and has a larger and more active community compared to Underscore.

Decisions about Lodash and Underscore

Fast Healthcare Interoperability Resources (FHIR) provides standard data objects in JSON format for the healthcare industry. Since JSON objects are hierarchical and tree-like, we had a need to defensively 'pluck' fields from our JSON objects and do lots of mapping. We tried jQuery and Underscore and a few other technologies like FHIRPath; but Lodash has been the most well supported, works in the most contexts, has the cleanest syntax, etc. We particularly like the ES6 version of Lodash, where we can import the method names directly, without resorting to * or _ syntax. We got hooked on the 'get' function to defensively pluck fields from objects without crashing our user interface, and have found countless uses for the other lodash functions throughout our apps. Lodash is great for developing and optimizing algorithms.

See more
Manage your open source components, licenses, and vulnerabilities
Learn More
Pros of Lodash
Pros of Underscore
  • 2
    Better than Underscore
  • 1
    Simple
  • 0
    Better that Underscore
  • 85
    Utility
  • 55
    Simple
  • 40
    Functional programming
  • 32
    Fast
  • 28
    Open source
  • 20
    Backbone
  • 16
    Javascript
  • 8
    Annotated source code
  • 6
    Library

Sign up to add or upvote prosMake informed product decisions

Cons of Lodash
Cons of Underscore
  • 1
    It reduce the performance
    Be the first to leave a con

    Sign up to add or upvote consMake informed product decisions

    What is Lodash?

    A JavaScript utility library delivering consistency, modularity, performance, & extras. It provides utility functions for common programming tasks using the functional programming paradigm.

    What is Underscore?

    A JavaScript library that provides a whole mess of useful functional programming helpers without extending any built-in objects.

    Need advice about which tool to choose?Ask the StackShare community!

    What companies use Lodash?
    What companies use Underscore?
    Manage your open source components, licenses, and vulnerabilities
    Learn More

    Sign up to get full access to all the companiesMake informed product decisions

    What tools integrate with Lodash?
    What tools integrate with Underscore?

    Blog Posts

    What are some alternatives to Lodash and Underscore?
    jQuery
    jQuery is a cross-platform JavaScript library designed to simplify the client-side scripting of HTML.
    Ramda
    It emphasizes a purer functional style. Immutability and side-effect free functions are at the heart of its design philosophy. This can help you get the job done with simple, elegant code.
    ES6
    Goals for ECMAScript 2015 include providing better support for large applications, library creation, and for use of ECMAScript as a compilation target for other languages. Some of its major enhancements include modules, class declarations, lexical block scoping, iterators and generators, promises for asynchronous programming, destructuring patterns, and proper tail calls.
    RxJS
    RxJS is a library for reactive programming using Observables, to make it easier to compose asynchronous or callback-based code. This project is a rewrite of Reactive-Extensions/RxJS with better performance, better modularity, better debuggable call stacks, while staying mostly backwards compatible, with some breaking changes that reduce the API surface.
    TypeScript
    TypeScript is a language for application-scale JavaScript development. It's a typed superset of JavaScript that compiles to plain JavaScript.
    See all alternatives