javascript的问题不在于语言本身,而是一种完美的原型化和动态语言。如果您是来自OO的背景,则有一些学习上的困难,但这不是语言的错。
大多数人认为Javascript类似于Java,因为它具有相似的语法和相似的名称,但实际上它更像Lisp。实际上,它非常适合DOM操作。
真正的问题是它是由浏览器编译的,这意味着它根据客户端的使用方式非常不同。
实际的DOM不仅因浏览器而异,而且在性能和布局上也有很大差异。
修改以下有问题的说明
假设支持多种解释语言-您仍然遇到相同的问题。各种浏览器仍然会出现故障,并且具有不同的DOM。
另外,您还必须为每种语言在浏览器中内置一个解释程序,或者以某种方式将其安装为插件(可以在提供页面之前进行检查)。为了使Javascript保持一致需要很长时间。
您不能以相同的方式使用编译语言-然后,您将介绍一个不容易对其功能进行仔细检查的可执行文件。许多用户会选择不让它运行。
好的,那么对于已编译代码的某种沙箱呢?在我看来,听起来像Java Applets。或Flash中的ActionScript。或Silverlight中的C#。
某种IL标准呢?那有更多的潜力。用所需的任何语言进行开发,然后将其编译为IL,然后由浏览器将其编译为IL。
除此之外,Javascript已经是IL的一种了-只看GWT即可。它使您可以用Java编写程序,但可以将它们分发为HTML和JS。
进行进一步澄清后进行编辑
Javascript不是浏览器支持的语言,或者不是,不是浏览器支持的唯一语言:在Internet Explorer的黑暗年代,您可以选择Javascript或VBScript在IE中运行。从技术上讲,IE甚至没有运行Javascript-它运行了JScript(主要是为了避免向Sun支付Java一词的费用,Oracle仍然拥有Javascript的名称)。
问题在于VBScript是Microsoft专有的,而且还不是很好。尽管Javascript在其他浏览器(例如FireBug)中添加了功能并获得了一流的调试工具,但VBScript仍然仅支持IE,并且几乎不可调试(IE4 / 5/6中的开发工具不存在)。同时,VBScript也进行了扩展,成为OS中非常强大的脚本编写工具,但是浏览器中没有这些功能(当它们成为巨大的安全漏洞时)。
仍然有一些使用VBScript的公司内部应用程序(有些依赖于这些安全漏洞),并且它们仍在运行IE7(它们只是停止了IE6,因为MS最终将其杀死了)。
使Javascript达到目前的状态一直是一场噩梦,并且花费了20年的时间。它仍然没有一致的支持,某些浏览器仍然缺少语言功能(1999年指定),并且需要大量填充。
添加用于在浏览器中解释的备用语言面临两个主要问题:
应当指出,Javascript还没有“完成”,它还在不断发展以在新的浏览器中变得更好。在最新的版本是超前于浏览器的实现年,他们的下一个工作。