Y subrayar la diferencia entre lodash [Cerrar]

Esta traducción de: Diferencias y el ENTRE lodash Subrayado [Cerrado]

¿Alguien por la prefieren ya sea en el porqué lodash.js o underscore.js biblioteca de utilidades más en el otro? ¿Por qué algunas personas prefieren lodash.js o underscore.js biblioteca de utilidades en lugar de otro?

Parece que hay una caída Lodash-en el reemplazo de Subrayado, en el segundo el de haber sido por más tiempo. Lodash parece alternativas de subrayado, que han existido por un tiempo más largo.

Creo que ambos son brillantes, pero no saben lo suficiente acerca de cómo funcionan para hacer una comparación educada, y me gustaría saber más acerca de las diferencias. Creo que ambos son maravillosos, pero me he basado en cómo sus esfuerzos la comparación no entiende, me gustaría saber más acerca de estas diferencias.


# 1 planta

Referencia: La diferencia entre https://stackoom.com/question/vrJC/lodash y guiones - cerrado


Casa # 2

Inspirado por Dash ES-Lo subrayado, pero hoy en día es una solución superior. Lo-Dash fue inspirado por un guión, pero ahora es una solución excelente. El hacer su CAN por Usted construcciones personalizadas , tienen tienen una EN AREAS DE COMMUNICAITIONS Rendimiento , Soporte y AMD tienen tienen grandes características adicionales . Puede crear una versión personalizada , con un mayor rendimiento , soporte para AMD y tiene una potente funcionalidad adicional . La presente el Cheque Lo-Dash vs subrayado puntos de referencia EN jsperf y el este .. impresionante Deja la sobre Lo tablero : verificar esta información en jsperf de Lo-Dash VS subrayado puntos de referencia y ... en lo-rociada de este puesto gran :

Una de las características más útiles cuando se trabaja con colecciones, se muestra la sintaxis abreviada: uno cuando se utiliza una colección de las características más útiles es sintaxis abreviada:

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 }]

(tomado de docs lodash ) (摘自docs lodash )


Casa # 3

Dash-Lo a la creó el que el proporcionar un apoyo más coherente varios entornos para la iteración matrices, cadenas, objetos y argumentsobjetos 1 . He creado un Lo-Dash, una matriz de cadenas y objetos, argumentsobjetos 1 para proporcionar un entorno más consistente a través de iteración de apoyo . TI ha Operando desde convertirse en un un superconjunto de Subrayado, proporcionando más coherente el comportamiento de la API, Más características (como el apoyo de AMD, el clon profundo y combinación profunda), más exhaustivo de documentación y pruebas unitarias (Las pruebas que se ejecutan en el nodo, Ringo, Rhino, Narwhal, PhantomJS y navegadores), y optimizaciones de mejor desempeño general de grandes matrices / Objeto de la iteración, y más flexibilidad con construcciones personalizadas y pre-Plantilla de compilación Utilidades. se ha convertido en subrayado superconjunto proporcionar un comportamiento más consistente API, más características(Como el apoyo AMD, la profundidad y la profundidad de la fusión de clonación), más completa documentación y las pruebas de unidad (en el nodo, Ringo, Rhino, Narwhal, marcha de prueba PhantomJS) y el navegador), un mejor rendimiento general y una matriz grande / objeto optimización iterativa, así como de generación personalizada mayor flexibilidad y utilidad de plantillas pre-compilados.

Lo-Dash será actualizado porque más frecuentes En el pasado subrayado, A lodash underscoreConstruir se proporciona a estable de asegurar la compatibilidad con la última versión de por el carácter de subrayado. Desde relación Lo-Dash lodash underscoreactualiza con frecuencia, proporcionando así el lodash underscoreedificio , con el fin de asegurar que la última versión estable lodash underscorecompatibles.

En un punto el que fue el Incluso teniendo en cuenta el empuje de acceso para subrayar, en parte debido a Lo-Dash es responsable de recaudar más than 30 y la delincuencia; Una vez, incluso me sale un par de relieve la presión , en parte debido a Lo-Dash responsable de levantar más de 30 cuestión; . correcciones de errores de aterrizaje, nuevas características nuevas, y ganancias Perf, en subrayado v1.4.x viene en + subrayado + v1.4.x viene en las correcciones de errores de aterrizaje, nuevas características y mejoras de rendimiento.

Un Además, hay por lo menos 3 boilerplates columna vertebral que la incluyen Mín el tablero de forma predeterminada y Lo-Dash es ahora Mencionado en Oficial de la espina dorsal de documentación . Además, al menos de forma predeterminada 3 plantillas Backbone contienen Lo-Dash, ahora Backbone de oficiales documentos se refirió a la lo-Dash.

El puesto de control de SALIDA Kit de Cambridge, Say "Hello" a Lo-Dash , un desglose más profundo sobre las diferencias del ENTRE Lo-Dash y subrayado. Mensajes Ver Kit de Cambridge, dijo que el Lo-Dash, "Hola" , para un análisis más en profundidad la diferencia entre el lo-guiones y guiones.

Notas al pie: Notas al pie:

  1. Inconsistentes Soporte para Arrays tiene Guión bajo, cuerdas, objetos y argumentsobjetos. Subrayado la matriz, cadenas, objetos y argumentssoporte de objetos incoherentes. El En los nuevos navegadores, Guión bajo Métodos los ignoran agujeros en matrices , "Objetos" Métodos de las iterar argumentsObjetos, cadenas son tratados como matriz similar, y métodos correctamente y las funciones iterate (ignorando su "prototipo" Propiedad Privada) y objetos (por iteración a través de las Propiedades sombreadas como "toString" y "valueOf"), mientras que en más viejos navegadores no lo harán. en los nuevos navegadores, subrayado método ignora el conjunto de vulnerabilidades , "objetos" iterativos argumentsobjetos, las cadenas son tratados en una matriz similar a la función iterativa método correcto (ignorada su propiedad "prototipo") y el objeto (iteración atributos de sombra, tales como "toString") y "valueOf"), y en los navegadores antiguos que no lo harán. Además, los métodos de subrayado gusta _.clonepreservar agujeros en matrices, como el mientras que otros _.flattenno lo hacen. _.cloneEste _.clonemétodo _.cloneconserva una serie de vulnerabilidades, y como _.flattental otro _.flattenno lo hace.

# 4 piso

El Además de respuesta John apos, y leer sobre lodash (que el que hasta entonces había considerado como un "yo también" poner de relieve), y ver las pruebas de rendimiento, la lectura del código fuente, y publicaciones de blog , los puntos de pocos que la lodash maquillaje muy superior a la de subrayado son estos: además de la respuesta de Juan, también leer desde lodash (he es considerado hasta ahora como "yo también" para enfatizar), y ver las pruebas de rendimiento, código fuente y leer mensajes de blog unos pocos, haciendo que el lodash estos puntos más que subrayados:

  1. A la velocidad no es la de él, ya que es el Sobre La consistencia de la velocidad (?) No se trata de velocidad, sino de la velocidad de la consistencia (?)

    Si nos fijamos en fuente- de subrayado código, se verá en las primeras líneas que subrayan cae-de nuevo en las implementaciones nativas de muchas funciones. Si nos fijamos en el código fuente está subrayado, verá varias líneas subrayadas en la anterior la máquina hacia abajo para poner en práctica muchas de las funciones. Ideal mundo de una aunque, pero, habría sido el presente Enfoque A Better, se mira si en el Perf algunos de los eslabones de DADO ESTOS las diapositivas , no es difícil señalar a la Calidad de Conclusión El Aquellos que 'nativos Implementaciones' varían mucho en navegador a-navegador. a pesar de que en un mundo ideal, esto puede ser una mejor manera, si nos fijamos en las diapositivas de la actuación de algunos enlaces dado, no es difícil de dibujar "la implementación nativa" la calidad de estos cambios son gran conclusión - al navegador. Firefox es condenadamente rápido en algunas de las funciones, y en algunas Chrome domina. Algunas características de Firefox es muy rápido, y dominante en algunos Chrome. (Imagino que habría algunos escenarios donde IE dominaría también). (Creo que hay algunos casos IE dominarán). Es, por lo cree mejor que el I del prefiero un código cuyo rendimiento es más consistente a través de los navegadores. Creo que la mejor opción para un rendimiento más consistente en el código del navegador.

    Más temprano en la entrada del blog de la Leer el Do, y de creer en vez de eso para el SU Sake, juzgar por sí mismo mediante la ejecución en los puntos de referencia . Por favor leer la entrada del blog, en vez de confiar en sí, mediante la ejecución de la referencia juzgar por sí mismo. AM sorprendió en este momento el que, al ver una lodash Realización de 100-150% más rápido than subrayado en el incluso el simple , nativos funciones tales como Array.everyen Chrome! Me sorprende ver a un lodash que unos simples nativos funciones (como Chrome es Array.everymás rápido 100-150%!

  2. En Los Extras en lodash son también bastante útiles. Lodash de características adicionales son también muy útiles.

  3. AS para Xananax de alta upvoted el comentario que sugiere contribución al código de Subrayado: Siempre es de mejor tener tiene BUENA competencia, no sólo la innovación seguir adelante, pero también le lleva al Mantenerse (o su biblioteca) en buen la forma. Como Xananax comentarios alta evaluación muestra que la contribución del código subrayado: tienen una buena competencia es siempre mejor, no sólo puede ser innovador, sino también para animarle a mantenerse (o su biblioteca) en buenas condiciones.

Es un fondo de pantalla aquí Lista de Diferencias los ENTRE lodash, y Build-IT de Subrayado es una gota en el reemplazo para sus Guión bajo los Proyectos. Las siguientes son algunas lodash diferencias en la lista , se subrayaron construir su proyecto subrayado un reemplazo directo.


Casa # 5

Esta es 2014 y un par de años demasiado tarde. Este es el año 2014, pero ya era demasiado tarde para unos pocos años. Aún así creo que mi punto sostiene: sigo pensando que mi punto es:

En mi humilde opinión esta discusión se sopla fuera de proporción un poco. En mi humilde opinión, esta discusión es bastante fuera de proporción. En Lo anterior citando Entrada de blog : referencia a lo anterior el blog :

La mayoría de las bibliotecas de utilidad de JavaScript, como subrayado , Valentine, y Wu, se basan en el "enfoque dual-nativa en primer lugar." Este enfoque prefiere implementaciones nativas, cayendo de nuevo a la vainilla JavaScript sólo si no se admite el equivalente nativo. Utilidad más JavaScript biblioteca (por ejemplo, subrayado, Valentine y Wu) se basan en los "métodos nativos prioritarias dobles." Este método es más parecido a la aplicación nativa, sólo cuando no soporte nativo volverá equivalente a la vainilla JavaScript. Pero jsPerf reveló una tendencia interesante: la forma más eficiente para iterar sobre una matriz o una matriz similar a la colección es evitar las implementaciones nativas por completo, optando por bucles simples en su lugar. Pero jsPerf revela una tendencia interesante: la matriz o una matriz iterativo similar el método más eficaz es evitar la aplicación nativa, ciclo simple seleccionado.

Como si "bucles simples" y " JavaScript básico" son más nativa de matriz o método de objeto implementaciones. Si "ciclo simple" y de arrays "de vainilla Javascript" lograr más localizada que o método del objeto. Por Dios ... Por Dios ......

Sin duda, sería bueno tener una sola fuente de la verdad, pero no lo es. Tener una única fuente de la verdad será sin duda muy bueno, pero no lo es. Incluso si le han dicho de otro modo, no hay Vainilla Dios, querida. Incluso si se les ha dicho, querida, no hay dios vainilla. Lo siento. Lo siento. La única suposición de que realmente tiene es que estamos todo el código Javascript escrito que tiene por objeto llevar a cabo bien en todos los navegadores, sabiendo que todos ellos tienen diferentes implementaciones de las mismas cosas. La única verdadera configurado en el supuesto de que todos estamos en la preparación encaminadas a todos los principales navegadores tienen código Javascript para funcionar bien, porque saben que todos estos códigos tienen diferentes implementaciones. Es una perra para hacer frente a, por decirlo suavemente. Decir suavemente, es una perra de tratar. Pero esa es la premisa, ya sea que nos guste o no. Pero esto es un requisito previo, ya sea que nos guste o no.

Ustedes son de Grandes trabajo Tal vez los proyectos que necesitan twitterish escalar el rendimiento de modo que para realmente nos vemos en la -Diferencia el ENTRE 850.000 (subrayado) frente a 2.500.000 (lodash) sobre las iteraciones por segundo Una lista ahora mismo! Quizás esté llevando a cabo proyectos a gran escala estos proyectos necesidad de pánico rendimiento para que se vea realmente entre 850.000 por segundo en la lista (subrayados) y 2.500.000 (lodash) iteración diferencia!

Por mi parte, no lo soy. No soy una persona. Es decir, yo trabajé proyectos en los que tenía que abordar los problemas de rendimiento, pero nunca se resolvieron o causado por ninguno ni subrayado Lo-Dash. Es decir, yo estoy trabajando en mis problemas de rendimiento dirección debe de proyectos, pero nunca se resuelven o subrayado causada por y Lo-Dash. Y a menos que controlar la verdaderas diferencias en la aplicación y el rendimiento (estamos hablando de C ++ en este momento) del Digamos que un bucle a través de una iterable (objeto o matriz, escaso o no!), Prefiero no te molestan con cualquier eN basada en los resultados de las reivindicaciones Benchmark una plataforma que ya está obstinado . a menos que cogí una diferencia real y lograr un rendimiento (que ahora estamos hablando de C ++), digamos que un bucle a lo largo de un proceso iterativo (objeto o matriz, escaso escasa o no!), prefiero no basarse en ningún problemas han sido públicos los resultados de la plataforma de la línea de base de la reivindicación.

Sólo se necesita una sola actualización de permite decir Rhino para establecer sus implementaciones de métodos de matriz en el fuego de una manera que ni un solo "métodos medievales bucle se desempeñan mejor y para siempre y todo eso" cura puede discutir su / su camino alrededor del simple hecho de que todos un repentino métodos de arreglos en FF son mucho más rápido que su / su pertinaz brainfuck. se requiere una actualización independiente digamos Rhino de manera de lograr sus métodos de matriz, este enfoque no es un "método de ciclo medieval a obtener mejores resultados , pero nada es para siempre, "el cura puede discutir sobre el simple hecho de que él / FF enfoque repentina serie hasta el final en su cerebro mucho más rápido que él / ella piensa. El hombre, que no puede engañar a su entorno de ejecución por el engaño el entorno de ejecución! Hombre, no se puede engañar a su entorno de ejecución para engañar a su entorno de tiempo de ejecución! Pensar en eso cuando la promoción ... pensar en la promoción ......

su cinturón de herramientas a su cinturón de herramientas

La próxima vez .... ... la próxima vez.

Así que para mantener su pertinencia: es seguir siendo relevantes:

  • Uso Subrayado Si usted está en la comodidad sin sacrificar ish nativo. Si usted tiene acceso fácil sin sacrificar la capacidad nativa, utilice el carácter de subrayado.
  • Uso Lo-Dash si usted está en la comodidad y al igual que su catálogo de características extendidas (profunda copiar, etc.) y si usted está en necesidad desesperada de rendimiento instantáneo y lo más importante no les importa la solución para una alternativa tan pronto como Outshine de API nativa workaurounds pertinaz. usan lo-Dash, si usted es práctico, y al igual que su directorio de extensiones (en profundidad, etc.), si necesita desesperadamente rendimiento en tiempo real, lo más importante es no a la mente de inmediato la búsqueda de alternativas en la API nativa aparecerá el trabajo obstinado. ¿Qué va a ocurrir pronto. ¿Qué ocurrirá muy pronto. Período. Período.
  • Incluso hay una tercera solución. Incluso hay una tercera solución. DIY! DIY! Conocer sus entornos. Conocer su entorno. Saber acerca de las inconsistencias. Aprender inconsistente. Su el Read ( John-David 'S y Jeremy código.' S) (leerlos - David John y Jeremy 's) de código. No utilice tal o cual, sin ser capaz de explicar por qué una capa de consistencia / compatibilidad es realmente necesario y mejora el flujo de trabajo o mejora el rendimiento de la aplicación. Si no se puede explicar capa de consistencia / compatibilidad qué realmente necesitan y mejorar su trabajo procesos o mejorar el rendimiento de la aplicación, por favor, no use esta o aquella. Es muy probable que sus necesidades están satisfechas con un simple polyfill que eres perfectamente capaz de escribir usted mismo. Es probable que para satisfacer sus necesidades en un relleno simple que llenos de sí mismo para escribir. Ambas bibliotecas son la vainilla simplemente con un poco de azúcar. Ambas bibliotecas son la vainilla ordinaria con un poco de azúcar. Lucha por tanto, el Justo el quiénes es el que sirve en el más dulce pastel . No eran más que la más dulce cuales guerra de pasteles . Pero créanme, al final tanto sólo se está cocinando con agua. Pero créeme, los dos últimos se acaba el agua de cocción. No hay Dios tan vainilla no puede no haber ningún Papa vainilla, ¿verdad? N de vainilla Dios, es imposible dejar de hierba Papa, ¿verdad?

Elija lo que el enfoque se ajusta a sus necesidades de la mayoría de . Seleccione el método más adecuado para sus necesidades. Como de costumbre. Como de costumbre. Prefiero retrocesos en las implementaciones reales sobre obstinado tramposos en tiempo de ejecución en cualquier momento, pero incluso eso parece ser una cuestión de gusto hoy en día. Yo prefiero hacer trampa en lugar de terca y baja hasta la implementación real, pero aún así, parece ahora la cuestión de gusto. Al igual que en los recursos de calidad para pegar http://developer.mozilla.com y http://caniuse.com y serás el bien. Persistir como http://developer.mozilla.com y http://caniuse.com por lo recursos de calidad, que serán buenos.


Casa # 6

http://benmccormick.org/2014/11/12/underscore-vs-lodash/ http://benmccormick.org/2014/11/12/underscore-vs-lodash/

La comparación de dos por el artículo Este artículo fue a más tardar Ben McCormick: Ben McCormick será el último artículo comparando los dos:

  1. apos Dash API ES-LO un superconjunto de apos A subrayado. LO-Dash subrayan la API es un superconjunto.

  2. Bajo el capó [Lo-Dash] ha sido completamente reescrito. Bajo el capó [Lo-Dash] ha sido completamente reescrito.

  3. definitivamente no es Dash-Lo Sería de gran ayuda En el pasado subrayado. Lo-Dash subrayado ciertamente mejor que lento.

  4. Lo-Dash ha añadido el qué? Lo-Dash añadir algo?

    • Mejoras de uso Mejoras de uso
    • Funcionalidad adicional características adicionales
    • Las ganancias de rendimiento crecimiento del negocio
    • sintaxis abreviada para encadenar sintaxis abreviada enlace
    • Construye la costumbre de usar sólo lo que necesita hecha a la medida usando sólo lo que necesita
    • versiones semántica y el 100% de cobertura de código de control de versiones semántica y la cobertura de código 100%
Artículos originales publicados 0 · ganado elogios 136 · vistas 830 000 +

Supongo que te gusta

Origin blog.csdn.net/xfxf996/article/details/105204901
Recomendado
Clasificación