对任何JavaScript开发者而言,有三件必须了解的事。第一项,开发者必须知道如何正确地使用JavaScript语言。很多开发者还不熟悉这个语言时,就开始使用它,所以会衍生很多问题。
对开发者而言,必须了解语言特性后,再开始运用它。因为JavaScript是非常强大的语言,开发过程要处理很多工作,只有真正了解语言特性,才可以拥有更多生产力,开发者才能更快乐。
JavaScript是一种函数语言(Functional Language),可用来控制动态对象,也提供开发者熟悉的语法,这反映出它的功能特殊性,从对象角度来看,其实JavaScript语言比Java、C++或C#语言更优秀。
但是很多人痛恨JavaScript,其实是因为不了解JavaScript所工作的环境,这正是开发者必须知道的第二件事。开发者之所以痛恨JavaScript,其实他们痛恨的是浏览器提供的DOM组件。DOM的确是一种恐怖的API,若将任何开发语言的标准函式换成DOM以后,任谁都会痛恨这个语言,这就是JavaScript的处境。
浏览器是JavaScript的工作环境,开发者唯有了解浏览器的特性,才能顺利掌握它。新一代的JavaScript标准ECMAScript 5已经初露锋芒了,旨在用更合理的API来取代DOM。
最后一项重点是JavaScript的安全知识。对浏览器应用程序而言,安全永远是最重要的。因为不论用户是否清楚网页程序的确切用途,浏览器都会执行程序,而网页程序很容易加载用户所不知道的程序片段。
我们总是在功能强大和危险之间挣扎,浏览器的功能有限是好事。这样就能区分出程序到底考虑用户还是网站的利益,这是浏览器的重要创新。可是,浏览器只能分辨出使用者、网站或浏览器本身的意图,无法分辨出其他程序的意图,例如浏览器无法预料跨站脚本攻击(XSS)可以透过混搭程序渗透到网页中。
在混搭的网络应用中, 每一个外挂组件代表了不同的利益和意图。软件界过去几十年一直在寻找这类组件,JavaScript和浏览器是第一个成功者。但是,浏览器最大问题是让每一个组件取得所有权限,所以混搭组件会衍生出跨站脚本攻击。
目前,在最新的JavaScript标准ECMAScript第五版中,已经改善了语言的安全问题,会持续让JavaScript变成一个安全的语言,最快今年底前会出现支持ECMAScript的浏览器。
浏览器厂商必须重新改造DOM组件,这也是业界正在努力的方向。