`underscore` 和 `lodash` 的 `escape` 和 `unescape` 函数是否相同?

问题描述

escapeunescapeunderscorelodash 函数是否相同?那么我可以用 escape lodashunescapeunderscore 并始终获得相同的字符串吗?

我可能想从原版 https://stackoverflow.com/a/12034334/1707015 切换到 https://stackoverflow.com/a/18756038/1707015,并且必须连接不同的组件。

解决方法

除了 Underscore escapes backticks 和 Lodash doesn't 之外,它们的用途相同并且可以互换。

您链接到的第二个答案包含一条评论,即 Lodash 提供与 Underscore 相同的 API,但编写的目的是为了提高性能。我应该指出,这句话不再正确,如果曾经是的话。

从一开始,Lodash 就与 Underscore 有很大的不同,在每个主要版本中引入了更多的突破性变化。尽管许多函数仍然大致相同(例如 escape),但如今的库通常不能互换。

性能优势也应该有所保留。虽然 Lodash 确实比 Underscore 更优先考虑性能,但大多数应用程序不会注意到差异,而且还有一些 anecdotal evidence 应用程序实际上使用 Underscore 会更快一点。 Lodash 也比 Underscore 大四倍。因此,对于基于性能的决策,您应该使用这两个库对您的应用程序进行基准测试(这通常并不容易,因为它们不能完全互换),然后权衡速度差异与大小差异。

所以明智地选择!

完全公开:我是 Underscore 的维护者。