标签:# closures

Java / C开发人员应该知道的三个JavaScript怪癖

JavaScript可能是一种欺骗性的语言,并且可能会造成极大的痛苦,因为它不是100%一致的。众所周知,它确实存在一些不好的,令人迷惑的或冗余的功能:臭名昭著的with语句隐式全局变量不稳定的比较可能是最著名的。

JavaScript是历史上最成功的火焰生成器之一!除了它所存在的缺陷(在新的ECMAScript规范中部分解决了这些缺陷)之外,大多数程序员都讨厌JavaScript的原因有两个:

  • 他们错误地认为DOM等同于JavaScript语言,该语言具有相当糟糕的API。

  • 它们来自C和Java等语言的JavaScript。他们被JavaScript的语法迷住了,以为它的工作方式与那些命令式语言的工作方式相同。这种误解将导致混乱,沮丧和错误。

因此,通常JavaScript的声誉比其应有的差。

在我的职业生涯中,我注意到了几种模式:大多数具有Java或C / C ++背景的开发人员所使用的语言功能在JavaScript中都假定相同,而又完全不同。

本文收集了最麻烦的文章,将Java方式与JavaScript方式进行比较以显示差异,并重点介绍JavaScript的最佳实践。