几个星期后,我将有机会向我的同事介绍JavaScript.此前的项目主要使用Java和C++.我需要解释的JavaScript最重要或最重要的方面是什么?我列出了一些我已经确定的重要事项:
哈希/词典作为对象
原型继承
关闭
捆绑
我也将从A重新介绍到JavaScript.
我错过了什么?我正在寻找任何东西,从大语言功能到小问题.
在YUI剧院查看Doug Crockford的所有会议.它们被称为"Javascript编程语言","Javascript,好的部分","DOM,一个不方便的API"和"高级Javascript".在起草课程时,它可能会为您提供一个来源,并展示其中一些可能会消除java程序员自然会有的"米老鼠语言"偏见.
您可以下载所有这些会话.
我期望的一个问题值得一提的是范围界定的差异.例如,我基本上从Java转到Javascript,我花了很长时间才看到为什么像下面的代码没有按预期工作(即每个按钮警告"按钮9"):
function myFn() { ... for (var i = 0; i < 10; i++) { elems[i].onClick = function() { alert ("Button " + i); }; } }
即使你阅读了解释并且可以遵循它,你仍然需要一段时间才能本能地发现造成这个错误的代码.
首先要确保他们知道Java!= JavaScript;)
JavaScript是高度动态的,对于静态语言的人来说很难掌握:
动态
动态打字
与大多数脚本语言一样,类型与值相关联,而不是与变量相关联.例如,变量x可以绑定到一个数字,然后反弹到一个字符串.JavaScript支持各种方法来测试对象的类型,包括duck typing.
对象作为关联数组
JavaScript几乎完全基于对象.对象是关联数组,用原型进行扩充(见下文).对象属性名称是关联数组键:obj.x = 10和obj ["x"] = 10是等价的,点符号只是语法糖.可以在运行时添加,更改或删除属性及其值.也可以通过for ... in循环枚举对象的属性.