javascript的发展史以及它的未来(Web浏览器中的Javascript-零点程序员)
javascript的发展史以及它的未来(Web浏览器中的Javascript-零点程序员)从内容上来看,它是包括BOM和DOM;通常也称为客户端的JavaScript,就是JavaScript运行在浏览器中;Node:是在Google的V8 Javascript引擎上构建的,也就是平时我们所说的Node.Js,其在底层绑定了用于进程、文件和网络等Unix API,还绑定了HTTP客户端和服务器API;其实在远古时候,微软有个asp的动态网站开发技术,它使用的服务器端的脚本语言有两个,一个是VBScript,另一个就是Javascript ;Web浏览器中的Javascript:
本内容是《Web前端开发之Javascript视频》的课件,请配合大师哥《Javascript》视频课程学习。
JavaScript由最初的一个原始的脚本语言,已经发展成一门高效和通用的编程语言;一开始它只用于Web浏览器编程,而现如今它还可以用于其他编程工作;
服务器端的Javascript:
作为服务器端的开发,其中有两个比较著名的,一个是Rhino,是Mozilla开发的免费软件,是基于Java的Javascript解析器,实现了通过JavaScript程序能够访问整个Java API,能够自动完成JavaScript原生类型和Java原生类型之间的相互转换,因此JavaScript可以设置、查询Java属性,并能调用Java方法;
Node:是在Google的V8 Javascript引擎上构建的,也就是平时我们所说的Node.Js,其在底层绑定了用于进程、文件和网络等Unix API,还绑定了HTTP客户端和服务器API;
其实在远古时候,微软有个asp的动态网站开发技术,它使用的服务器端的脚本语言有两个,一个是VBScript,另一个就是Javascript ;
Web浏览器中的Javascript:
通常也称为客户端的JavaScript,就是JavaScript运行在浏览器中;
从内容上来看,它是包括BOM和DOM;
从形式上可以分为Web文档和Web应用两种形式;
Web文档里的Javascript:
Javascript可以通过document对象和它包含的element对象遍历和管理文档内容;它可以通过操纵CSS样式和类,修改文档内容的呈现;并且可以通过注册适当的事件处理程序来定义文档元素的行为;
Web文档里应当少量地应用Javascript,因为Javascript真正的作用是增强用户的浏览体验,使信息的获取和传递更容易;用户的体验不应依赖于Javascript,但Javascript可以增强体验,如:
- 创建动画和其他视觉效果,引导和帮助用户进行页面导航;
- 对表格的列进行分组,让用户更容易找到所需要的内容;
- 隐藏某些内容,当用户需要了解更详细内容时,再逐渐展示详细信息;
window对象:
客户端Javascript中最重要的对象之一是window对象,window对象是所有客户端Javascript特性和API的主要接入点;它表示Web浏览器的一个窗口或窗体;Window对象定义了一些属性,比如,指定当前窗口中的URL的location属性,其还可以允许脚本在窗口中载入新的URL;
window.location="https://www.zeronetwork.cn/";
window对象还定义了一些方法,如alert(),可以弹出一个对话框用来显示一些信息;比如:setTimeout(),可以注册一个函数,在给定的一段时间之后触发一个回调,如:
setTimeout(function(){
alert("零点网络");
} 2000);
在客户端Javascript中,window对象也是全局对象,也就是window对象处于作用域链的最顶部,它的属性和方法实际上是全局变量和全局函数,所以,window.setTimeout()可以直接使用setTimeout(),也就是说,如果想引用全局窗口或全局对象的属性,通常并不需要用到window;
window还定义了很多其它重要的属性、方法和构造函数;其中最重要的属性是document,它引用Document对象,表示的是在窗口中的文档;Document对象有一些重要的方法,比如getElementById(),可以基于元素id的值返回单一的HTML元素,如:
varmydiv=document.getElementById("mydiv");
getElementById()方法返回的Element对象,也拥有一些重要的属性和方法,比如允许脚本获取它的内容、设置属性值等,如:
varmydiv=document.getElementById("mydiv");
//如果元素为空,则往里面插入当前的日期和时间
if(mydiv.firstChild==null){
mydiv.appendChild(document.createTextNode(newDate().toString()));
}
每个Element对象才有style和className属性,允许脚本指定文档元素的CSS样式,或修改应用到元素上的CSS的类名,如:
varmydiv=document.getElementById("mydiv");
mydiv.style.height="200px";
mydiv.style.backgroundColor="yellow";
mydiv.className="mydiv";
window对象、document对象和element对象还有一个重要的属性集合是事件处理程序相关的属性;可以在脚本中为之绑定一个函数,这个函数会在某个事件发生时以异步的方式调用;事件处理程序可以让Javascript代码修改窗口、文档和组成文档的元素的行为;事件处理程序的属性名是以单词“on”开头的,如:
mydiv.onclick=function(){
this.innerHTML="<h2>零点网络</h2>";
}
window对象的onload处理程序是最重要的事件处理程序之一;当显示在窗口中的文档内容稳定并可以操作时可以触发它;Javascript代码通常封装在onload事件处理程序里;比如,可以在onload事件中,查询文档元素、修改CSS类和定义事件处理程序,如:
<style>
.newslist*{display:none;}
.newslisth1{display:block;}
.newslist_show*{display:block;}
</style>
<script>
window.onload=function(){
varelements=document.getElementsByClassName("newslist");
for(vari=0;i<elements.length;i ){
varelt=elements[i];
vartitle=elt.getElementsByTagName("h1")[0]
showHandler(title elt);
}
functionshowHandler(title elt){
title.onclick=function(){
if(elt.className=="newslist")
elt.className="newslist_show";
else
elt.className="newslist";
}
}
}
</script>
<divclass="newslist">
<h1>零点网络</h1>
<p>零点网络是一家科技公司</p>
</div>
Web应用里的Javascript:
在Web文档中使用的Javascript特性在Web应用中都会用到,对于Web应用来说,除了内容、呈现和操作API之外,还依赖Web浏览器环境提供的各种基础的服务;
现代浏览器,已经不仅仅是作为显示文档的工具了,而渐渐变成了一个简易的操作系统;
Web应用就是用Javascript访问浏览器提供的各种服务,这些服务有很多都是在HTML5中定义的,HTML5和相关的标准为Web应用定义了很多其他重要的API,这些API包括以上所说的网络、图像和数据存储,还包含地理位置信息、历史管理和后台线程等,这些都是典型的Web应用;例如XMLHttpRequest对象,其可以发出HTTP请求,可以从服务器端获取新信息,而不用重新载入整个页面,这样的Web应用称为Ajax应用;并且它们可以离线操作,以及保存数据到本地,以便再次访问时进行状态恢复;
Javascript在Web应用里会比在Web文档里显得更加重要;Javascript增强了Web文档,但是设计良好的文档需要 在禁用Javascript后还能继续工作;Web应用本质上就是Javascript程序,只不过使用了Web浏览器提供的服务,如果禁用了Javascript,Web应用就运行不了;
在真实的场景中,并不是完全分离Web文档和Web应用的这两种形式,而是结合了两者的特性;
Web前端开发之Javascript-零点程序员-王唯