【发布时间】:2011-09-30 18:53:41
【问题描述】:
我发现您可以将 jQuery 与 node.js 一起使用,但所有示例都是针对 DOM 和 HTML 操作的。
您认为将它用于数组迭代(对于每个)等是否可以或有点矫枉过正?
【问题讨论】:
标签: javascript jquery node.js
我发现您可以将 jQuery 与 node.js 一起使用,但所有示例都是针对 DOM 和 HTML 操作的。
您认为将它用于数组迭代(对于每个)等是否可以或有点矫枉过正?
【问题讨论】:
标签: javascript jquery node.js
大多数常见的 jQuery 实用程序已经在 V8 引擎中实现,node.js 是在该引擎上构建的。
例如,比较:
node.js 的一大优点是大部分 ES5 规范已经存在。
【讨论】:
Underscore.js 是一个小得多的用于操作对象的实用程序库。
http://documentcloud.github.com/underscore/
npm install underscore
编辑:
然而,node.js 对 ES5 的支持比浏览器好得多,而且您可能甚至不需要用于操作对象的库。请参阅 keeganwatkins 的回答。
【讨论】:
_.extend 这样的东西不在 ES5 中,如果可用的话,下划线会使用原生的 ES5。
Object.keys(source).forEach(function(key) { target[key] = source[key]; });你不需要extend
NodeJS 已经内置了所有 EcmaScript 5 Array Extras。例如,如果你想要所有奇数方块:
[1,2,3,4,5,6,7,8,9].map(function(n){
return n*n;
}).filter(function(n){
return n%2;
});
//-> [1, 9, 25, 49, 81]
如果你想查看数组的其他方法,可以去我的JavaScript Array Cheat Sheet。
如果你想要所有立方体的总和,你可以:
[1,2,3,4,5,6,7,8,9].map(function(n){
return n * n * n;
}).reduce(function(p, n){
return p + n;
});
//-> 2025
【讨论】:
【讨论】:
如果您只想添加几个函数,添加完整库的替代方法是只实现您想要的函数:
在 MDN 中记录了某些浏览器部分支持的许多功能以及可用于添加功能的兼容性代码:Array.forEach
【讨论】:
forEach 那为什么还需要通过 jQuery 添加呢?