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


当前回答

如果你想成为一个真正的JavaScript高手,你应该知道完美JavaScript测试中每个问题的答案。

下面这个例子可以让你胃口大开:

(function f(f){ 
  return typeof f(); 
})(function(){ return 1; });

这个表达式返回什么? “数量” “定义” “功能” 错误

其他回答

你知道javascript,如果你能有效地使用数组,数字,字符串,日期和对象。为Math和RegExp加分。你应该能够编写函数和使用变量(在正确的范围内,即作为对象的“方法”)。

我看到一些关于了解闭包的评论,奢侈的函数语法,blabla。所有这些都与这个问题无关。这就好比说,如果你能在11秒内跑完100米,你就是一名跑步者。

我说可能需要几周的时间来精通javascript。在那之后,你需要花费数年时间,阅读数十本书,编写数千行程序,才能成为专家、忍者等等。

但这不是问题所在。

对了,DOM不是javascript的一部分,jQuery也不是。所以我认为两者都与这个问题无关。

如果你不知道以下内容,你就不懂JavaScript:

闭包 基于原型的继承 模块模式 w3c dom的 事件是如何工作的

由于JS是一种函数式语言,一个优秀的JS程序员必须能够写出Y-combinator,并能毫不费力地解释它是如何工作的。

知道Javascript最初被称为LiveScript,加上“Java”前缀是出于营销目的,而不是因为Java和Javascript有关系(它们并没有关系)。

哦,对于拥有任何版本的David Flanagan的“Javascript:权威指南”(这一信息在第2页)。

... 感谢那些之前试图混淆ie4文档的人。all[]和Netscape Navigator 4的文档。在Jquery之前使用layers[]消除了这种痛苦。

编辑:

正如@Kinopiko指出的,JavaScript最初被称为项目Mocha(一些消息来源也认为它被称为项目LiveWire),但人们普遍认为,该语言(由Brendan Eich编写)在1996年初发布时采用Java前缀之前,计划以LiveScript的形式发布。

在阅读了以上所有内容之后,使用jQuery这样的框架来学习Javascript也是完全没问题的。事实上,这是很多人开始接触JS的第一种方式。这并不可耻。