第2章  在html中使用javascript 一般都会把js引用文件放在</body>前面,而不是放在<head>里, 目的是最后读取js文件以提高网页载入速度. 引用js文件时可以使用defer属性, 意思是延迟加载, 最后加载. 或者async属性, 意思是异步加载,不必等待其他脚本加载也不会阻塞文档加载. <script type='text/javascript' defer='defer' src='example.js'></script> &…
第1章 JavaScript简介 JavaScript是一种专为与网页交互而设计的脚本语言,由下列三个不同的部分组成: l        ECMAScript:提供核心语言功能: l        文档对象模型(DOM):提供访问和操作网页内容的方法和接口: l        浏览器对象模型(BOM):提供与浏览器交互的方法与接口. 第2章 在HTML中使用JavaScript 把JavaScript插入到HTML页面中使用到<script>元素. HTML 4.01为<script&g…
读书笔记,写的很乱   事件处理程序   事件处理程序分为三种: 1.html事件2. DOM0级,3,DOM2级别  没有DOM1 同样的事件 DOM0会顶掉html事件   因为他们都是属性  而DOM0比html事件执行的晚(可以理解为谁离html元素近先执行谁) JS事件执行顺序理解 先捕获(document-往下)->目标阶段(执行)->冒泡(具体到不具体); addEventListener 第三个参数 默认false   (false 是冒泡阶段执行)   true 是捕获阶段执…
第二章  在HTML中使用JS 加载JS有三种:行内,head头部和外部链接JS   最好使用外部链接<script src="example.js" ></script>(推荐),在script标签中不需要放任何代码,放了也会被忽略.也可以使用<script src="example.js" /> 但是语法不符合HTML规范  所以不要这样写. 在传统做法中,script放在head中,但是会等到加载完JS再执行DOM,页面会延…
1.数组的lenght属性 数组的lenght属性很有特点---他不是只读的,可以同过修改这个属性来向数组的末尾添值加或删除值, 删除值 var color = ["red", "blue", "green"]; color.length = 2; alert(color[2]); //undefined 新增值 var colors = ["red", "blue", "green"]…
第22章 高级技巧 1.高级函数 (1)安全的类型检测 在任何值上调用Object原生的toString()方法,都会返回一个[object NativeConstructorName]格式的字符串.每个类在内部都有一个[[Class]]属性,这个属性中就指定了上述字符串中的构造函数名. 基于这一思路来测试某个值是不是原生函数或正则表达式,如: function isFunction(value){ return object.prototype.toString.call(value) ==…
第6章  面向对象的程序设计 6.2 创建对象 创建某个类的实例,必须使用new操作符调用构造函数会经历以下四个步骤: 创建一个新对象: 将构造函数的作用域赋给新对象: 执行构造函数中的代码: 返回新对象. 构造函数的问题:每个方法都要在每个实例上重新创建一遍: 理解原型对象: 无论何时,只要创建了一个新函数,就会根据一组特定的规则为该函数创建一个prototype属性,这个属性指向函数的原型对象.默认情况下,所有原型对象都会自动获得一个constructor属性,这个属性包含一个指向proto…
第13章 事件 1.事件流 事件流描述的是从页面中接收事件的顺序.IE的事件流是事件冒泡流,而Netscape Communicator的事件流是事件捕获流. (1)事件冒泡,即事件开始时由最具体的元素接收,然后逐级向上传播到较为不具体的节点(文档).以下面为例,如果你单击了页面中的<div>元素,那么这个click事件会按照如下顺序传播: (2)事件捕获的思想是不太具体的节点应该更早接收到事件,而最具体的节点应该最后接收到事件.事件捕获的用意在于事件到达预定目标之前捕获它.以下面为例,如果你…
第6章 面向对象的程序设计 创建对象 1.最简单方式创建Object的实例,如 var person = new Object(); person.name = “Greg”; person.age = 27; person.job = ”Doctor”; person.sayName = function() { alert(this.name); }; person. sayName(): 缺点:会产生大量重复代码 2.工厂模式:用函数来封装以特定接口创建对象的细节,如 function c…
    Array类型. ECMAScript数组的每一项可以保存任何类型的数据. 数组大小是可以动态调整的. 创建数组第一种基本方式方式: 使用Array构造函数 var colors = new Array(); var colors = new Array(20);//length为20的数组f var colors = new Array("Red","Blue","Yellow",1);//创建包含3个字符串和一个数字的数组 创建数组第…