是否有一组东西是每个JavaScript程序员都应该知道的,以便能够说“我懂JavaScript”?


当前回答

真正学好一门语言并理解它的各种怪癖来自(多年的)经验。如果你想成为一个更好的程序员,我会说,了解设计模式,如何以及何时使用它们,甚至在你没有意识到的情况下使用它们;技术架构和用户体验。

Knowing the (JavaScript) language means you can pick up any framework and use it at will. You'll inevitably need to dive into the source code, and if all you know is the syntax a framework or 2 or 3, then you won't go far. In saying that, getting into a few different frameworks' source code is probably one of the best ways to see how JavaScript can be used. Messing about by stepping through the code in Firebug or Web Inspector, then checking JavaScript Documentation, especially the Mozilla and Webkit docs, to get further understanding of what you're looking at.

了解面向对象和函数式编程之间的区别,了解JavaScript是两者的完美结合,以及何时以及如何使用这两者来创建杀手级代码库和出色的应用程序,将使你成为更好的JavaScript程序员。

简单地阅读一些书籍,尤其是Crockford的“good parts”,它只展示了他对JavaScript中什么是好的观点,而跳过JavaScript的大部分“AWESOME”部分会让你一开始就走错了路。

另一方面,看看像Thomas Fuchs这样的人写的代码会让你更深入地了解编写令人惊叹和高效的JavaScript的力量。

试图记住一些陷阱或wtf也不会有多大帮助,如果你开始编码并逐步浏览一个库/框架的代码,特别是一个有帮助的注释的代码,你会发现为什么他们使用某些属性/值,而不是其他为什么以及什么时候使用特定的操作数和操作符是好的,这些都存在于框架的代码中。有什么比以身作则更好呢?: ^)

其他回答

jQuery是我最好的推荐。不仅仅是代码本身,它的习惯用法、风格和背后的思想都是最值得模仿的。

理解Crockford的《Javascript: the Good Parts》中所写的内容是一个很好的假设,即一个人是一个体面的JS程序员。

你可以知道如何使用一个好的库,如JQuery,但仍然不知道Javascript隐藏的部分。

另一个注意事项是各种浏览器上的调试工具。JS程序员应该知道如何在不同的浏览器中调试代码。

哦!知道JSLint会完全伤害你的感情!!

我强烈推荐阅读Javascript: The Good Parts

... 关于谷歌Web Toolkit,这意味着您的javascript项目可能可以以一种更方便的方式开发。

数组中。Length方法不是数组项的计数,而是最高索引。即使该项被设置为undefined

var a = [];
a.length;   // === 0
a[10];      // === undefined
a[10] = undefined;
a.length;   // === 11
a.pop();    // === undefined
a.length;   // === 10

这种行为很难与语言设计错误区分开来。