js高级程序教程
SunsCheung
Sharing is a virtue
展开
-
《JavaScript高级程序设计 第三版》学习笔记 (一)数据类型详解
系列来自:http://blog.csdn.net/lbxx1984/article/details/38870111 一、基本概念 1.ECMAScript (1)这是一个标准,虽然是伴随js而生的,但不意味着这就是js。这是用来规定语法、类型、关键字之类信息的。 (2)ActionScript也使用这个标准。js核心就是把符合这个标准的语句解析执行。转载 2017-04-06 15:03:43 · 381 阅读 · 0 评论 -
《JavaScript高级程序设计 第三版》学习笔记 (十二)Ajax详解
一、JSON 1.使用XML在服务器和浏览器之间进行数据交换太浪费带宽,因而出现了新的数据结构JSON。JSON是包含了简单值、对象、数组的严格的JS子集,不支持变量、函数或对象实例。很多语言也有各自的JSON解析器和序列化器。 2.不能将JSON写成简单的js字面量,否则只能在js中使用,而其他语言会解析不了。JSON要求严格的地方主要有:字符串值必须用双引号;对象属性必须用双引号;同一个对转载 2017-04-06 15:15:39 · 1584 阅读 · 0 评论 -
《JavaScript高级程序设计 第三版》学习笔记 (十一)事件详解
一、事件流 1.事件冒泡:事件开始时由最具体的元素(文档中嵌套层次最深的那个节点)接收,然后逐级向上传播到较为不具体的节点(文档)。最早使用事件冒泡的是IE,现在绝大多数浏览器都使用冒泡。IE9、Firefox、Chrome、Safari都将事件冒泡到window。 2.事件捕获:事件捕获是由不太具体的节点先接收事件,而最具体的节点最后接收事件。顺序与事件冒泡刚好相反。IE9、Safari、C转载 2017-04-06 15:14:40 · 495 阅读 · 0 评论 -
《JavaScript高级程序设计 第三版》学习笔记 (十)DOM详解
一、节点 1.节点层次 (1)节点是浏览器中的基础类型,所有DOM对象都是特殊的节点,继承自node,可以使用节点自带的方法。 (2)可以通过somenode.childNodes[0];somenode.childNodes.item(0);somenode.firstChild;somenode.lastChild迭代当前节点的子节点。 (3)可以通过somenode.parentNo转载 2017-04-06 15:14:22 · 840 阅读 · 0 评论 -
《JavaScript高级程序设计 第三版》学习笔记 (九)BOM详解
一、window对象 1.作为Global (1)window有双重身份,一是js访问浏览器的一个接口,二是ECMAScript的Global对象。 (2)window作为Global,在全局作用域声明的变量、函数都是window对象的属性和方法。定义全局变量和定义window属性是有区别的:定义的window属性,可以用delete删掉,这和其他对象一致;定义的全局变量则不能。还有一个区别转载 2017-04-06 15:12:18 · 361 阅读 · 0 评论 -
《JavaScript高级程序设计 第三版》学习笔记 (八)块作用域及私有成员
一、模仿块级作用域 1.js不像C和java一样有块级作用域。 在C和Java中,一对大括号{}决定一个作用域,比如for循环。在js中,变量可以在函数任何一处定义,并且忽略重复定义。变量初始化之前使用,值永远是undefined。这些内容在以前已经提到了。 [javascript] view plain copy //小实验 fu转载 2017-04-06 15:10:52 · 609 阅读 · 0 评论 -
《JavaScript高级程序设计 第三版》学习笔记 (七) 内存泄漏详解
一、内存泄漏 1.所谓内存泄漏,是指浏览器的垃圾回收机制无法正常回收没用的DOM对象,根本原因是DOM对象的引用数大于0。 2.在IE9之前的版本,IE浏览器的DOM对象和JS对象使用了不同的垃圾回收机制。这是内存泄漏的根源。 3.浏览器回收DOM对象,都是查看DOM对象的引用次数是否为0。而有些时候,某个DOM对象的引用次数永远都不会变为0,哪怕是页面已经关闭了。想让内存发生泄漏,做法就是转载 2017-04-06 15:10:09 · 385 阅读 · 0 评论 -
《JavaScript高级程序设计 第三版》学习笔记 (六) 函数与闭包详解
一、函数声明 1.函数的声明语法:function funcName(){}。js执行前会把函数声明载入,因此可以在调用之后声明函数,不必向c语言一样先声明,再调用,然后写实现。这个学名叫“函数声明提升”。 2.函数的表达式语法:var funcName=function(){}。这种方式其实是先创建一个匿名函数,然后把函数的地址传给变量。所以在调用funcName之前,必须先写好函数,不能像转载 2017-04-06 15:09:23 · 366 阅读 · 0 评论 -
《JavaScript高级程序设计 第三版》学习笔记 (五) 继承详解
面向对象语言有两种继承方式:接口继承(只继承方法名);实现继承(继承实际的方法)。但在ECMAScript中,函数名没多大含义,只是函数体的引用而已,因此,ECMAScript无法实现接口继承,只支持实现继承。实现继承,主要是依靠原型链来完成的。 一、原型链 1.原型链的基本思想是:利用原型让一个引用类型继承另一个引用类型的属性和方法。 2.构造函数、原型、实例之间的关系 (1)每个构转载 2017-04-06 15:08:25 · 485 阅读 · 0 评论 -
《JavaScript高级程序设计 第三版》学习笔记 (四) 对象创建详解
一、对象 1.ECMAScript把对象定义为“一组没有特定顺序的值,这些值可以是基本值、对象或函数。”我们可以把js的对象想象成散列表,每个值对应这一个key。每个对象都是基于引用类型创建的,可以是前面提到的原声引用类型,也可以是自定义引用类型。 2.一个对象(实例),是它内部所有函数值(方法)的执行环境。 3.对象的属性,包括两种,数据属性和访问器属性。 (1)数据属性,包括一个数据转载 2017-04-06 15:07:12 · 1073 阅读 · 0 评论 -
《JavaScript高级程序设计 第三版》学习笔记 (三)引用类型详解
一、引用类型 1.ECMAScript从技术上讲是一门面向对象语言,但它不具备传统的面向对象语言所支持的类和接口等基本结构。js中的对象,是某个特定引用类型的实例。新对象通过new操作符构造出来。构造函数本身也是一个普通函数,加new和不加new的运行结果完全不同。ECMAScript有很多原生的引用类型。 2.Object类型 (1)Object的属性,可以用点语法访问,也可以用方括号语法转载 2017-04-06 15:05:33 · 478 阅读 · 0 评论 -
《JavaScript高级程序设计 第三版》学习笔记 (二)执行环境与作用域链
一、值和引用 1.基础类型值:js中五个基础类型unsigned、null、number、boolean、string,这些类型的变量名代表值;把这些变量当作参数传递给函数,解析器会复制一份形参给函数当局部变量用(注意,字符串也是传的值,和其他语言出入比较大)。 2.引用类型值:js的其他类型object、function、array、date(array和date都是object)等,这些类转载 2017-04-06 15:04:31 · 315 阅读 · 0 评论 -
《JavaScript高级程序设计 第三版》学习笔记 (十三)高级函数
1.安全的原生类型检验 js的原生类型,可以用typeof判断,但有时会失效。比如typeof array返回的不是Array,而是Object;再比如老版本IE,会将function识别为Object。另外一个判断类型的是instanceof,它能够在对象的原型链中查找构造函数,但这种方法对于原生类型的判断也会出问题,因为某些原生构造函数用户是可以覆盖的,比如Array和JSON。请看下面转载 2017-04-06 15:16:56 · 1389 阅读 · 0 评论