Lodash
是一個一致性、模塊化、高性能的 JavaScript 實用工具庫。
Lodash 實現(xiàn)了大量實用的工具方法。(官方文檔)
<script src="https://cdn.bootcdn.net/ajax/libs/lodash.js/4.17.15/lodash.min.js"></script>
<script>
console.log(window._);
var arr = [1, 2, 3, 4, 5];
var arrChunk = _.chunk(arr, 2);
console.log(arrChunk); // 輸出:[[1, 2], [3, 4], [5]]
</script>
1. 代替原生方法使用
Lodash 提供了許多原生同名方法,如數(shù)組 forEach
、map
、includes
等。
Lodash 對這些方法增加了容錯,如果是原生方法,碰到值為 null
或者 undefined
會報錯,在 Lodash 中會處理掉這份錯誤。
Lodash 在引入后,入口為全局下的 _
。
<script src="https://cdn.bootcdn.net/ajax/libs/lodash.js/4.17.15/lodash.min.js"></script>
<script>
var arr = null; // 不知道出于什么原因 本來應(yīng)該是個數(shù)組 但是變成了null
_.forEach(arr, function() {
});
arr.forEach(function() {
}); // 異常:Cannot read property 'forEach' of null
</script>
同時 Lodash 對一些方法做了優(yōu)化處理,如:假使在 forEach
的回調(diào)中返回了 false
,則不會再繼續(xù)遍歷,達(dá)到與 break
類似的效果。
<script src="https://cdn.bootcdn.net/ajax/libs/lodash.js/4.17.15/lodash.min.js"></script>
<script>
var arr = [1, 2, 3, 4];
var fn = function(item, index) {
if (index === 2) {
return false;
}
console.log(item);
};
console.log('lodash: ');
_.forEach(arr, fn);
console.log('native: ')
arr.forEach(fn);
</script>
對項目有強(qiáng)健壯性和穩(wěn)定性的項目,可以考慮使用 Lodash 這樣的庫替代原生方法進(jìn)行使用,讓第三方做好兼容處理。
2. 小結(jié)
Lodash 是非常常用的工具庫,也提供了許多 ES6 提供的同名的方法,可以充當(dāng) polyfill 使用。