向Java程序员教授JavaScript

时间:2009-02-11 14:03:45

标签: javascript

几个星期后,我将有机会向我的同事介绍JavaScript。此前的项目主要使用Java和C ++。我需要解释的JavaScript最重要或最重要的方面是什么?我列出了一些我已经确定的重要事项:

  • 哈希/词典作为对象
  • 原型继承
  • 闭包
  • Binding

我也将从A re-introduction to JavaScript开始。

我错过了什么?我正在寻找任何东西,从大型语言功能到小问题。

11 个答案:

答案 0 :(得分:13)

YUI Theater查看Doug Crockford的所有会话。它们被称为“Javascript编程语言”,“Javascript,好的部分”,“DOM,一个不方便的API”和“高级Javascript”。在起草课程时,它可能会让你成为一个来源,并展示其中一些可能会消除java程序员自然会有的“米老鼠语言”偏见。

您可以下载所有这些会话。

答案 1 :(得分:8)

我期望的一个问题值得一提的是范围界定的差异。例如,我基本上从Java转到Javascript,我花了很多时间才看到为什么像下面的代码没有按预期工作(即每个按钮警告“按钮9”):

function myFn() {
   ...
   for (var i = 0; i < 10; i++) {
      elems[i].onClick = function() { alert ("Button " + i); };
   }
}

即使您阅读了解释并且可以遵循它,仍然需要一段时间才能本能地发现导致此错误的代码。

答案 2 :(得分:7)

首先要确保他们知道Java!= JavaScript;)

答案 3 :(得分:6)

JavaScript is highly dynamic,这对于静态语言的人来说很难掌握:

  

动态

     

动态类型

     

与大多数脚本语言一样,类型与值相关联,而不是与变量相关联。例如,变量x可以绑定到一个数字,然后反弹到一个字符串。 JavaScript支持各种方法来测试对象的类型,包括鸭子类型。

     

作为关联数组的对象

     

JavaScript几乎完全基于对象。对象是关联数组,用原型进行扩充(见下文)。对象属性名称是关联数组键:obj.x = 10和obj [“x”] = 10是等价的,点符号只是语法糖。可以在运行时添加,更改或删除属性及其值。对象的属性也可以通过for ... in循环来枚举。

答案 4 :(得分:4)

我实际上在前几天为C ++ dev发现了really excellent link映射 OO概念,这应该是合适的,因为一旦你超越了语法变体,问题就是“你怎么做X?“

哦和一流的功能!

答案 5 :(得分:4)

如果内存服务,我对JavaScript的第一次精神跳跃是:

1 - 它在HTML中,但它正在制作HTML。弄清楚如何组织它以获得理智,并把它放在正确的地方做正确的事情是关键。

2 - 服务器提供它但它在客户端上运行。代码在浏览器内运行的事实,在一个无法直接访问服务器内部的位置需要一些人习惯。

3 - 何时使用它。有许多方面可以使用JSP(或其他服务器端动态页面生成机制)或JavaScript。重要的是要感受何时它是适合工作的正确工具。看到新的JavaScript开发人员在JavaScript中执行所有并不罕见。现在他们有了锤子,整个世界已经变成了钉子。

4 - 测试&amp;调试 - 我知道有更好更好的工具,但是要意识到每个支持的浏览器都需要重新测试,如何在每个浏览器中调试浏览器代码是一本很好的东西,这些书似乎从来没有很好地教过。

答案 6 :(得分:4)

告诉他们所有人都要获得Javascript: The Definitive Guide的副本。

我是一名职业C ++程序员,几年前不得不学习Javascript,这本书在学习语言方面绝对具有无可估量的价值。它也为一些本地Javascript对象(如String和Number。)提供了很好的参考。

答案 7 :(得分:2)

JSON中使用的javascript的字面语法也是一个重要特性。不难,但仍然很重要。

答案 8 :(得分:2)

你肯定会花一些时间来解释Javascript中没有类这样的东西,以及基于原型的继承和基于类的继承之间的区别。

如果您正在与一群Java / C ++编码器交谈,我可以看到这是一个棘手的问题。

答案 9 :(得分:1)

还教他们关于图书馆,例如this obvious example。对于很多情况,声明性&gt;操纵DOM时的命令。它也很漂亮。

答案 10 :(得分:-1)

教授DOM和HTML更好。这形成了Javascript的良好基础。