本文将介绍JavaScript的特别之处,为什么要使用JavaScript,以及web开发的其它相关技术的优缺点。
什么是JavaScript?
JavaScript是一种脚本语言,为装饰网页而生。它使得网页可以做更多的事情。
除了名字与Java相关外,此语言和Java没有太多关系,JavaScript的语言规格称为ECMAScript
JavaScript中的程序称为脚本,它不是一种汇编语言,要运行它,你仅需要写一段脚本,并把之添加到Html代码中。
一些人认为JavaScript很像Python,也有人认为它和Ruby或Self很类似,然而JavaScript是一种优雅,特殊而且独立的语言。
JavaScript能做什么?
修饰HTML页面,输入文本,添加删除标签,改变样式等等;
监听事件,并执行相关代码,如鼠标点击,移动,键盘输入等等;
像服务器发送请求,在没有reload的情况下加载数据(ajax..);
获取以及设置cookie,请求数据,输出信息等等;
..以及更多其它强大的功能;
JavaScript不能做什么?
JavaScript是一种快速且强大的通用语言。但是以浏览器为允许环境就使得它有一些安全方面的限制。这是因为你当然也不希望网页在你的设备上胡作非为(读写你的文件,安装莫名其妙的软件..),因此脚本语言具有严格的安全限制,你也能够放心的打开一些页面。
JavaScript的作用大多被限制在一个浏览器窗口内
JavaScript不能读写硬盘里的资料,复制文件或者调用其它的程序,它没有直达系统的权限(一些较新的浏览器在安全的范围内提供这样的能力);
某一页里面的javaScript不能影响其它页或窗口里面的页面,也有例外,当两个窗口同域时(same domain).
一个拥有JavaScript的页面能够在当前域内无限制的进行网络请求,在有安全措施的前提下对其它域进行网络请求也是可能的。
JavaScript最酷的地方是哪里?
最酷的地方至少体现在三方面。
与Html/Css的完美整合;
简单的事情可以简洁的完成;
被所以浏览器默认支持;
其它任何web开发技术都做不到这三点,而且JavaScript是一门不断发展的语言,新的特性也在不断的被加入,现代的ECMAScript标准在不断的带来新特性,新的JavaScript引擎也工作得越来越快,越来越好。
JavaScript的趋势,Html5(注,本文成文时,Html5标准还未正式通过)
当你准备学习一种新技术,了解该技术的发展趋势,能使得你的时间投资更具价值。
除了当前的ECMAScript标准增进了语言的本身,浏览器开发商也在不断的采用Html5技术,这是一种相对的标准,更准确的说是一种领先标准,其中包含了许多可能你需要等待很多年才能通过的技术。以下是一些例子:
在保证安全的情况下,读写访问者硬盘里的一些文档;
在浏览器内内嵌数据库,允许在客户端存取一些数据;
多线程运行;
视频录播;
使用硬件加速,绘制2D,3D图形(类似于现代游戏);
Html5这个名字可能存在一定的误导性,正如你可能已经知道的这个新标准并非仅仅关于Html,也包括更强大的浏览器特性;
趋势在于,JavaScript在增强其自身的能力,变得越来越强大,尝试着达到桌面app的能力;
现代浏览器在改善其引擎,已达到更快的JavaScript解释速度,它们同样修复着bug,并紧随着新标准改善自己;
这个趋势是,JavaScript变得更快更稳定;
同样值得注意的是新的Html5标准和ECMAScript6标准是兼容老的标准的,这意味着老的页面也能正确的运行。
不过,诚实说来,Html5也有一些小的问题,即“浏览器跑得太快了”,一些特性还只是草案,但是由于该特性太出色,一些浏览器迫不及待得就采纳了它。因此在使用这些特性时,应该考虑其兼容性问题。
这个趋势是,新的特性是具有较好的兼容性的除了少数浏览器采纳的了教超前的特性。
其它的一些web开发技术简介
在一些方面,JavaScript是受限的,这就是为什么其它的一些技术会被采用。而且这些技术能够较好的和JavaScript配合使用,当我们只用JavaScript不能处理一些问题时,我们可能可以通过JavaScript + Java或JavaScript + Flash或JavaScript + ActiveX来解决。
Java
你已经知道JavaScript和Java并没有太大的关系,Java是一种允许你写小程序并内嵌到Html页面中的语言。
一个Java小程序就像一个可以在浏览器中运行的文件,程序员用Java编写,编译并在html页面中链接到它,当浏览器打开了一个页面,将会找到这个链接,引用,下载并执行它(Java环境支持);
Java小程序和JavaScript最大的区别在于它们的能力:
像安装的程序一样,Java小程序能够做任何事情,出于安全方面的考虑,一个不安全的操作需要使用者的确认。
Java开发很容易,众多IDE非常完善;
Java需要更长的时间加载,开始运行占用资源更多;
运行系统需安装并开启Java环境;
Java并没有和html整合,它在页面里的一个单独的容器中运行;
Adobe Flash
flash最初是为多媒体而生,并且具有跨浏览器跨平台的特性,配合动画,音频,视频它使得web页面更加生动,flash也有一些其它的有趣的特性。
一段flash电影是一段用ActionScript写的编译程序,通常捆绑有图片和一些其它的资源。
非常适合网络访问(sockets, UDP for P2P);
与Html5相比,支持更复杂的多媒体,对图片,音频,视频支持更好,也支持相机和麦克风;
制作flash具有较好的IDE,与浏览器的兼容性非常好;
需要预先安装并允许使用falsh;
Flash并没有和html整合,它在页面里的一个单独的容器中运行
Flash具有和JavaScript一样严格的安全限制;
目前,falsh在很多方面的垄断面临较大的压力,比如说Html5原生只是播放视频,绘制动画等等,支持Html5的浏览器就不再需要Flash做视频音频方面的事情了。
falsh和Java都能够调用JavaScript,反之亦然,因此一个网站通常大多使用JavaScript,在JavaScript力不能及的地方使用Flash或者Java;
ActiveX,浏览器插件和拓展
ActiveX是一个非常好的但是ie独享的事物,它允许当用户访问时,页面中整合进用c语言写的程序。
和html/css具有较好的整合;
用c语言撰写,功能丰富允许快速;
如果用户允许,可以做任意事情;
IE专属,Chrome在用户允许的情况下部分支持;
ActiveX开发比较困难;
windows上的程序能够通过ActiveX整合,因此,一个页面可以调用Word,加载一个文档进入Excel等。
其它浏览器允许通过使用NPAPI撰写插件和拓展。
其它的一些技术:Silverlight, XUL, VBscript
这些技术的使用范围相对窄一些。
XUL是一种为接口而生语言,如果你为火狐浏览器写拓展,它非常有用,对一些桌面应用来说也很有用;
Silverlight是微软基于.net开发的与flash做竞争的产品,在windows上运行较快,也在逐渐改善跨平台的支持能力,常用于内联网和基于Windows的应用;
VBscript是微软基于Visual Basic开发的一种类似JavaScript的语言,已经过时,现在不再开发,和JavaScript比起来,其缺乏很多功能;
总结
JavaScript的独特处体现在它的广泛使用和与Html/Css整合最好。
JavaScript具有最光明的和或多或少兼容的未来;
一个好的JavaScript程序员也应该了解一下其它的语言,在特殊的场景下可能会用到它们。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。