【问题标题】:Javascript Best Practices [closed]Javascript 最佳实践 [关闭]
【发布时间】:2008-09-02 14:41:22
【问题描述】:

有哪些很好的资源来学习 Javascript 的最佳实践?我主要关心什么时候应该是一个对象,什么时候应该在 DOM 中跟踪它。此外,我想更好地学习如何组织我的代码,以便于进行单元测试。

【问题讨论】:

标签: javascript unit-testing


【解决方案1】:

第二个Javascript: The Good Parts 和 Resig 的书Secrets of the Javascript Ninja

这里有一些关于 Javascript 的提示:

  • 不要污染全局命名空间(将所有函数放入对象/闭包中)
    • 看看YUI,它是一个巨大的代码库,只有两个全局对象:YAHOO 和 YAHOO_config
  • 对单例使用模块模式 (http://yuiblog.com/blog/2007/06/12/module-pattern/)
  • 让您的 JS 尽可能可重用(jQuery 插件、YUI 模块、基本 JS 对象。)不要编写大量的全局函数。
  • 别忘了改变你的变量
  • 使用 JSlint:http://www.jslint.com/
  • 如果您需要保存状态,最好使用对象而不是 DOM。

【讨论】:

  • 我喜欢 JavaScript:好的部分。但是,我不喜欢 Crockford 的编码风格,我认为他太执着于不让 JS 看起来像一个典型的 OO 语言。我用它只是为了找出语言的技巧并应用到我自己的风格中,它试图用 JS 模拟经典继承,因为它使所有语言背景的人都更易读。
【解决方案2】:

我在某种程度上不同意“使用框架”的说法。太多人盲目地使用框架,对幕后发生的事情知之甚少或根本不了解。

【讨论】:

    【解决方案3】:

    我喜欢 Douglas Crockford 的 JavaScript:The Good Parts,尽管它完全专注于语言并完全忽略了 DOM。

    【讨论】:

      【解决方案4】:

      如果您不想阅读,可以观看此视频:JavaScript the good parts by Doug Crockford

      【讨论】:

        【解决方案5】:

        可能最重要的事情是使用一个框架,例如jQueryprototype,以消除浏览器之间的差异,并使事情变得更容易。

        【讨论】:

        • 我完全不同意。虽然在某一时刻这可能是一个有效的建议,但现在似乎框架主要被新手用来掩盖他们缺乏经验和完全无法编写 JavaScript 或访问 DOM。
        • 我完全不同意你的观点。抱怨框架是菜鸟如何隐藏他们不知道如何使用工具使他们的工作更轻松的事实。别浪费时间了。学习如何站在巨人的肩膀上。直接遍历 DOM 也是一个糟糕的主意。
        【解决方案6】:

        YUI Theatre 有一堆视频(有些带有成绩单),由 Steve Souders、Douglas Crockford、John Resig 和其他人提供,内容涉及 JavaScript、YUI、网站性能和其他相关主题。

        Youtube 上也有关于 jQuery 和其他框架的非常感兴趣的谷歌技术讲座。

        【讨论】:

          【解决方案7】:

          你可以从Pro JavaScript Techniques 学到很多东西,我期待着 Resig 即将到来的Secrets of the JavaScript Ninja

          【讨论】:

            【解决方案8】:

            作为 Crockford 书籍的附录,您可能还想查看这篇文章 Code Conventions for the Javascript Programming Language。我还有一个稍微不同的建议:与其直接使用 JS 库,不如自己创建一个?你可能会写一个糟糕的库(就像我一样),但你会在这个过程中学到一些东西。您有可以用作模型的现有示例。另外,为了帮助您了解 JS 设计模式,我将推荐另一本书,“Pro Javascript Design Patterns”。

            【讨论】:

              猜你喜欢
              • 2011-04-14
              • 2014-01-09
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2013-10-02
              • 2010-10-06
              • 2011-10-28
              相关资源
              最近更新 更多