【问题标题】:Using jQuery with node.js在 node.js 中使用 jQuery
【发布时间】:2011-09-30 18:53:41
【问题描述】:

我发现您可以将 jQuery 与 node.js 一起使用,但所有示例都是针对 DOM 和 HTML 操作的。

您认为将它用于数组迭代(对于每个)等是否可以或有点矫枉过正?

【问题讨论】:

    标签: javascript jquery node.js


    【解决方案1】:

    大多数常见的 jQuery 实用程序已经在 V8 引擎中实现,node.js 是在该引擎上构建的。

    例如,比较:

    node.js 的一大优点是大部分 ES5 规范已经存在。

    【讨论】:

    • 不是因为链接,是因为你还没有学会使用markdown
    • 好吧,当我尝试提交原始答案时,它说我没有足够的代表来发布两个以上的链接。谢谢你清理它!
    • 啊,在这种情况下,我已经更新了您的答案以正确链接,因为它们是合法的。
    • 只是指出。至少目前 $.map 也适用于对象。所以它和使用 Array::map 是不一样的。
    【解决方案2】:

    Underscore.js 是一个小得多的用于操作对象的实用程序库。

    http://documentcloud.github.com/underscore/

    npm install underscore
    

    编辑:

    然而,node.js 对 ES5 的支持比浏览器好得多,而且您可能甚至不需要用于操作对象的库。请参阅 keeganwatkins 的回答。

    【讨论】:

    • 你真的应该仔细检查你是否需要下划线,ES5 可以做大部分下划线可以做的事情。
    • 没错,但是像 _.extend 这样的东西不在 ES5 中,如果可用的话,下划线会使用原生的 ES5。
    • Object.keys(source).forEach(function(key) { target[key] = source[key]; });你不需要extend
    【解决方案3】:

    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
    

    【讨论】:

      【解决方案4】:

      jQuery 有一些漂亮的非 DOM 特性可以借用 -

      https://github.com/jquery/jquery/tree/master/src

      只去掉你不需要的东西(比如对窗口的引用)。

      【讨论】:

        【解决方案5】:

        如果您只想添加几个函数,添加完整库的替代方法是只实现您想要的函数:

        在 MDN 中记录了某些浏览器部分支持的许多功能以及可用于添加功能的兼容性代码:Array.forEach

        【讨论】:

        • 我不太了解 Node.js,如果它已经有 forEach 那为什么还需要通过 jQuery 添加呢?
        猜你喜欢
        • 2017-10-26
        • 1970-01-01
        • 2013-04-03
        • 2011-07-19
        • 2011-05-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多