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