kzen.dev
  • Frågor
  • Taggar
  • Användare
Meddelanden
Belöningar
Registrering
När du har registrerat dig kommer du att få information om svar och kommentarer på dina frågor.
Logga in
Om du redan har ett konto loggar du in för att kontrollera nya meddelanden.
Det kommer att finnas belöningar för frågor, svar och kommentarer.
Mer
Källa
Redigera
Brian  M. Hunt
Brian M. Hunt
Question

Skillnader mellan lodash och underscore

Varför skulle någon föredra antingen lodash.js eller underscore.js framför varandra?

Lodash verkar vara en ersättare för underscore, eftersom det senare har funnits längre.

Jag tycker att båda är lysande, men jag vet inte tillräckligt mycket om hur de fungerar för att kunna göra en välgrundad jämförelse, och jag skulle vilja veta mer om skillnaderna.

1562 2012-12-09T17:08:36+00:00 3
 Cœur
Cœur
Redigerad fråga 2017ör januari 2017 в 1:16
Programmering
javascript
underscore.js
lodash
Popular videos
Lodash vs Underscore
Lodash vs Underscore
för 7 år sedan
What is Lodash and How it Works (for beginners)
What is Lodash and How it Works (for beginners)
för 2 år sedan
JavaScript : Differences between Lodash and Underscore.js
JavaScript : Differences between Lodash and Underscore.js
för 1 år sedan
Lodash and Underscore in 10 Minutes
Lodash and Underscore in 10 Minutes
för 8 år sedan
Write Fewer Functions by Using Lodash!
Write Fewer Functions by Using Lodash!
för 3 år sedan
lodash sum and sumBy
lodash sum and sumBy
för 1 år sedan
Hey Lodash, you're doing it wrong! w/ Zach McElrath
Hey Lodash, you're doing it wrong! w/ Zach McElrath
för 5 år sedan
Lodash: Get and Set explained
Lodash: Get and Set explained
för 4 år sedan
Functional Programming with Lodash
Functional Programming with Lodash
för 8 år sedan
Lodash Tutorial - How Lodash can enhance your JS code
Lodash Tutorial - How Lodash can enhance your JS code
för 6 år sedan
Functional Programming with Lodash
Functional Programming with Lodash
för 8 år sedan
Lodash _.get() Tutorial - Safely access object properties - Dissect Lodash Get
Lodash _.get() Tutorial - Safely access object properties - Dissect Lodash Get
för 3 år sedan
« Föregående
Nästa »
Den här frågan har 1 svar på engelska, för att läsa dem logga in på ditt konto.
Solution / Answer
John-David Dalton
John-David Dalton
2012ör december 2012 в 5:34
2012-12-16T05:34:06+00:00
Mer
Källa
Redigera
#17939703

Jag skapade Lo-Dash för att ge ett mer konsekvent iterationsstöd för arrayer, strängar, objekt och arguments-objekt1. Det har sedan dess blivit en överordning av Underscore, som ger ett mer konsekvent API-beteende, fler funktioner (som AMD-stöd, deep clone och deep merge), grundligare dokumentation och enhetstester (tester som körs i Node, Ringo, Rhino, Narwhal, PhantomJS och webbläsare), bättre övergripande prestanda och optimeringar för iteration av stora matriser/objekt och större flexibilitet med custom builds och verktyg för förkompilering av mallar.

Eftersom Lo-Dash uppdateras oftare än Underscore, tillhandahålls en lodash underscore-byggnad för att säkerställa kompatibilitet med den senaste stabila versionen av Underscore.

Vid ett tillfälle fick jag till och med push access till Underscore, delvis på grund av att Lo-Dash är ansvarig för att ha tagit upp mer än 30 problem; landning av felrättningar, nya funktioner och förbättrad prestanda i Underscore v1.4.x+.

Dessutom finns det minst tre Backbone boilerplates som innehåller Lo-Dash som standard och Lo-Dash nämns nu i Backbones officiella dokumentation.

Kolla in Kit Cambridges inlägg Say "Hello" to Lo-Dash för en djupare genomgång av skillnaderna mellan Lo-Dash och Underscore.

Fotnoter:

  1. Underscore har inkonsekvent stöd för matriser, strängar, objekt och arguments-objekt. I nyare webbläsare ignorerar Underscore-metoder hål i matriser, "Objects"-metoder itererar arguments-objekt, strängar behandlas som matrisliknande och metoder itererar korrekt funktioner (ignorerar deras "prototype"-egenskap) och objekt (itererar skuggade egenskaper som "toString" och "valueOf"), medan de inte gör det i äldre webbläsare. Dessutom bevarar Underscore-metoder som _.clone hål i matriser, medan andra som _.flatten inte gör det.
 Community
Community
Redigerat svar 2018ör augusti 2018 в 7:29
1966
0
 neiker
neiker
2012ör december 2012 в 9:51
2012-12-13T21:51:14+00:00
Mer
Källa
Redigera
#17939702

Lo-Dash är inspirerad av underscore, men är numera en bättre lösning. Du kan göra dina anpassade byggen, få högre prestanda, stöd för AMD och fantastiska extrafunktioner. Kolla in detta Lo-Dash vs Underscore benchmarks på jsperf och detta awesome post about lo-dash:

En av de mest användbara funktionerna när du arbetar med samlingar är den kortfattade syntaxen:

var characters = [
  { 'name': 'barney', 'age': 36, 'blocked': false },
  { 'name': 'fred',   'age': 40, 'blocked': true }
];

// using "_.filter" callback shorthand
_.filter(characters, { 'age': 36 });

// using underscore
_.filter(characters, function(character) { return character.age === 36; } );

// → [{ 'name': 'barney', 'age': 36, 'blocked': false }]

(hämtad från lodash docs)

 neiker
neiker
Redigerat svar 2015ör april 2015 в 6:23
183
0
 kumarharsh
kumarharsh
2013ör augusti 2013 в 2:18
2013-08-18T14:18:59+00:00
Mer
Källa
Redigera
#17939704

Förutom Johns svar och att jag läste på om lodash (som jag hittills hade betraktat som en "me-too" till underscore), och såg prestandatester, läste källkoden och [blogginlägg] (http://kitcambridge.be/blog/say-hello-to-lo-dash/), är de få punkter som gör att lodash är mycket bättre än underscore dessa:

  1. Det handlar inte om hastigheten, utan om konsistens i hastigheten (?).

    Om du tittar i underscores källkod ser du i de första raderna att underscore faller tillbaka på de inhemska implementeringarna av många funktioner. Även om detta i en idealisk värld skulle ha varit ett bättre tillvägagångssätt, är det inte svårt att dra slutsatsen att kvaliteten på dessa "inhemska implementationer" varierar mycket från webbläsare till webbläsare om man tittar på några av de perf-länkar som anges i [dessa bilder] (http://allyoucanleet.com/post/21624742336/jsconf-us-12-slides). Firefox är jäkligt snabb i vissa av funktionerna, och i vissa dominerar Chrome. (Jag kan tänka mig att det skulle finnas vissa scenarier där IE också skulle dominera). Jag tror att det är bättre att föredra en kod vars prestanda är mer konsekvent mellan olika webbläsare.

Läs blogginlägget tidigare, och i stället för att tro på det för dess skull, döm själv genom att köra [benchmarks] (http://lodash.com/benchmarks). Jag är förbluffad just nu när jag ser en lodash prestera 100-150% snabbare än underscore i till och med simpla, nativa funktioner som Array.every i Chrome!

  1. De extras i lodash är också ganska användbara.
  2. När det gäller Xananax mycket uppröstade kommentar som föreslår bidrag till underscore's kod: Det är alltid bättre att ha GOD konkurrens, det håller inte bara innovationen igång utan driver dig också att hålla dig själv (eller ditt bibliotek) i god form.

Här är en [lista över skillnader] (https://github.com/bestiejs/lodash/wiki/build-differences) mellan lodash och dess underscore-build är en drop-in ersättning för dina underscore-projekt.

 kumarharsh
kumarharsh
Redigerat svar 2015ör januari 2015 в 8:43
60
0
Lägg till en fråga
Kategorier
Alla
Teknik
Kultur / fritid
Livet / Konst
Vetenskap
Professionell
Företag
Användare
Alla
Ny
Populära
1
Daniel Gogov
Registrerad för 1 vecka sedan
2
工藤 芳則
Registrerad för 2 veckor sedan
3
Ирина Беляева
Registrerad för 2 veckor sedan
4
Darya Arsenyeva
Registrerad för 2 veckor sedan
5
anyta nuam-nuam (LapuSiK)
Registrerad för 3 veckor sedan
DE
ES
FR
ID
IT
JA
LT
NL
NO
PT
RO
SV
TR
ZH
© kzen.dev 2023
Källa
stackoverflow.com
under licens cc by-sa 3.0 med angivande av