JavaScript高级程序设计技巧 js是什么意思

JavaScript高级程序设计JavaScript的高级特性是学习JavaScript必须要理解清楚的,不然我们在以后学习JavaScript各种特效和变换时可以说真的和天书一样的 。今天整理的一些关于JavaScript的一些高级特性的笔记,就和大家分享分享 。下面的内容的都是我对这些特性的理解,文采有限,所以大家见谅,如果有不对的地方,希望斧正 。那么我们开始吧!


JavaScript高级程序设计技巧 js是什么意思

文章插图
ECMAScript 5 和 HTML5 在标准之争中双双胜出,同时也为 JavaScript 增添了很多适应未来发展的新特性 。JavaScript 语言实现的各个组成部分——语言核心、DOM、BOM、事件模型讲起,深入浅出地探讨了面向对象编程、Ajax 与 Comet 服务器端通信,HTML5 表单、媒体、Canvas(包括 WebGL)及 Web Workers、地理定位、跨文档传递消息、客户端存储(包括 IndexedDB)等新 API,还介绍了离线应用和与维护、性 能、部署相关的最佳开发实践 。

JavaScript高级程序设计技巧 js是什么意思

文章插图
(一)对象我们都知道在JavaScript中,一切皆是对象 。所以我们常说的函数也是对象,在ECMAscript中,我们称之为函数,但是在JavaScript中我们就要喊他对象,只是叫法不同,本质是一样的 。因此在ECMAscript我们对函数的定义方式与在JavaScript中定义对象的方式很相似的 。(1)定义对象1.var 对象名=new object();这种定义方式我们一般是很少用的,因为通过这个方式,我们可以把JavaScript的内置对象赋值给一个新的对象,但是我们在使用内置对象时,都是直接调用对象名来使用,所以这种定义的方式显得有些啰嗦了 。2.var 对象名={key:value,key:value,key:value}这种定义的方式很想 json 传递数据的形式,通过键值对来给我们的对象增加属性和方法的 。这种方式定义的对象,我们称之为普通对象 。这种定义方式很常见 。3. function 对象名(){}我们称之为函数对象,有被称作函数构造器 。这种函数有两种含义:1.它本身是个函数对象,可以作为函数调用 。2.他可以作为一个基准函数,去构造其他我们所需要的对象 。这种定义是最最常见的,通过这种定义方式我们可以构造出许多内部函数对象,代码会有更好的结构 。(2)引用对象既然定义了对象,那么对对象的引用以及对象中存在的属性和方法我们也要掌握 。因为定义方式的不同,所以引用对象的方式也不尽相同 。还有就是相同的一点就是只要我们这样写(对象名.属性);就是对象的调用,这是一般的调用方式 。首先说下简单的,对普通对象的调用,方式就是(对象名.属性);那么对于函数对象的调用就显得有些复杂了,它的调用方式 (var a=new 对象名();a.属性);这两句话来完成对函数对象的调用 。var a=new 对象名();这句话的意思就是说,我们把函数对象赋值给一个普通对象,此时我们传递的是一个地址,一个指向函数对象的地址 。那么这个地址存储在那呢?其实这就是new的作用了,new的作用就是为我们重新开辟出一个新的空间,而这个空间就是放我们的地址 。这样函数对象就和普通对象就建立了联系 。其实在这里,还有一点就是,函数对象和普通对象建立关系,是通过返回值this建立的 。至于this需要我们花费时间理解的,不过我们记着这一点this指的就是那个调用此函数的内容 。a.属性; 因为他们之间建立了联系 。所以我们对a调用就是对函数对象里的内容和方法了 。这样就完成了调用 。。。(哎 。。。好像说的更复杂了)(3)对 对象的操作对 对象的操作有四种:1.增添,2.修改,3.删除,4.调用调用在前面已经详细说了,就不多言了 。说说其他的;1. 增添对于普通对象对象名.新的属性=新的属性值;对象名.新的方法=function();对于函数对象;普通函数对象.新的属性=新的属性值;普通函数对象.方法=function();这里的普通函数对象就是前面我们定义的a 。2.修改对于普通对象对象名.属性=新的属性对象名.方法=新的function();对于函数对象普通函数对象.属性=新的属性值;普通函数对象.方法=新的function;3.删除对于普通对象delete 对象名.属性=属性值;delete 对象名.方法=function();对于函数对象delete 普通函数对象.属性=属性;delete 普通函数对象.方法=function();(二) 闭包特性我们常说的闭包,简单的说就是函数可以使用函数之外的变量 。我来说说几个概念,全局域:就是说从<script>开始到</script>结束,这之间的内容就是全局域了;从图中可以看出函数n()可以调用其他的变量a,b 。那么闭包形成的的条件是什么呢?闭包形成必须满足 1.在全局域里可以调用内部函数n();2.最内层函数n()可以访问局部变量b;3.内层访问的变量必须位于上一层函数内定义形成闭包特性: