WEB前端网页设计 - JavaScript 高级教程(一)

目录

JavaScript 对象

所有事物都是对象

JavaScript 对象

访问对象的属性

访问对象的方法

创建 JavaScript 对象

使用 Object

使用对象构造器

创建 JavaScript 对象实例

把属性添加到 JavaScript 对象

把方法添加到 JavaScript 对象

JavaScript 类

JavaScript for...in 循环

语法

实例

JavaScript 的对象是可变的

JavaScript prototype(原型对象)

prototype 继承

添加属性和方法

JavaScript Number 对象

JavaScript 数字

所有 JavaScript 数字均为 64 位

精度

八进制和十六进制

无穷大(Infinity)

NaN - 非数字值

数字可以是数字或者对象

Number 属性

数字方法

数字类型原型上的一些方法


JavaScript 对象


JavaScript 中的所有事物都是对象:字符串、数值、数组、函数...

此外,JavaScript 允许自定义对象。


所有事物都是对象

JavaScript 提供多个内建对象,比如 String、Date、Array 等等。 对象只是带有属性和方法的特殊数据类型。

  • 布尔型可以是一个对象。
  • 数字型可以是一个对象。
  • 字符串也可以是一个对象
  • 日期是一个对象
  • 数学和正则表达式也是对象
  • 数组是一个对象
  • 甚至函数也可以是对象

JavaScript 对象

对象只是一种特殊的数据。对象拥有属性方法


访问对象的属性

属性是与对象相关的值。

访问对象属性的语法是:

objectName.propertyName

这个例子使用了 String 对象的 length 属性来获得字符串的长度:

var message="Hello World!";
var x=message.length;

在以上代码执行后,x 的值将是:

12


访问对象的方法

方法是能够在对象上执行的动作。

您可以通过以下语法来调用方法:

objectName.methodName()

这个例子使用了 String 对象的 toUpperCase() 方法来将文本转换为大写:

var message="Hello world!";
var x=message.toUpperCase();

在以上代码执行后,x 的值将是:

HELLO WORLD!

创建 JavaScript 对象

通过 JavaScript,您能够定义并创建自己的对象。

创建新对象有两种不同的方法:

  • 使用 Object 定义并创建对象的实例。
  • 使用函数来定义对象,然后创建新的对象实例。

使用 Object

在 JavaScript 中,几乎所有的对象都是 Object 类型的实例,它们都会从 Object.prototype 继承属性和方法。

Object 构造函数创建一个对象包装器。

Object 构造函数,会根据给定的参数创建对象,具体有以下情况:

  • 如果给定值是 null 或 undefined,将会创建并返回一个空对象。
  • 如果传进去的是一个基本类型的值,则会构造其包装类型的对象。
  • 如果传进去的是引用类型的值,仍然会返回这个值,经他们复制的变量保有和源对象相同的引用地址。
  • 当以非构造函数形式被调用时,Object 的行为等同于 new Object()。

语法格式:

// 以构造函数形式来调用
new Object([value])

value 可以是任何值。

以下实例使用 Object 生成布尔对象:

// 等价于 o = new Boolean(true);
var o = new Object(true);

这个例子创建了对象的一个新实例,并向其添加了四个属性:

person=new Object();
person.firstname="John";
person.lastname="Doe";
person.age=50;
person.eyecolor="blue";

也可以使用对象字面量来创建对象,语法格式如下:

{ name1 : value1, name2 : value2,...nameN : valueN }

其实就是大括号里面创建 name:value 对,然后 name:value 对之间以逗号 , 隔开。

person={firstname:"John",lastname:"Doe",age:50,eyecolor:"blue"};

JavaScript 对象就是一个 name:value 集合。


使用对象构造器

本例使用函数来构造对象:

function person(firstname,lastname,age,eyecolor)
{
    this.firstname=firstname;
    this.lastname=lastname;
    this.age=age;
    this.eyecolor=eyecolor;
}

在JavaScript中,this通常指向的是我们正在执行的函数本身,或者是指向该函数所属的对象(运行时)


创建 JavaScript 对象实例

一旦您有了对象构造器,就可以创建新的对象实例,就像这样:

var myFather=new person("John","Doe",50,"blue");
var myMother=new person("Sally","Rally",48,"green");

把属性添加到 JavaScript 对象

您可以通过为对象赋值,向已有对象添加新属性:

假设 person 对象已存在 - 您可以为其添加这些新属性:firstname、lastname、age 以及 eyecolor:

person.firstname="John";
person.lastname="Doe";
person.age=30;
person.eyecolor="blue";

x=person.firstname;

在以上代码执行后,x 的值将是:

John

把方法添加到 JavaScript 对象

方法只不过是附加在对象上的函数。

在构造器函数内部定义对象的方法:

function person(firstname,lastname,age,eyecolor)
{
    this.firstname=firstname;
    this.lastname=lastname;
    this.age=age;
    this.eyecolor=eyecolor;

    this.changeName=changeName;
    function changeName(name)
    {
        this.lastname=name;
    }
}

changeName() 函数 name 的值赋给 person 的 lastname 属性。

myMother.changeName("Doe");

JavaScript 类

JavaScript 是面向对象的语言,但 JavaScript 不使用类。

在 JavaScript 中,不会创建类,也不会通过类来创建对象(就像在其他面向对象的语言中那样)。

JavaScript 基于 prototype,而不是基于类的。


JavaScript for...in 循环

JavaScript for...in 语句循环遍历对象的属性。

语法

for (variable in object)
{
    执行的代码……
}

注意: for...in 循环中的代码块将针对每个属性执行一次。

实例

循环遍历对象的属性:

var person={fname:"John",lname:"Doe",age:25}; 
 
for (x in person)
{
    txt=txt + person[x];
}

JavaScript 的对象是可变的

对象是可变的,它们是通过引用来传递的。

以下实例的 person 对象不会创建副本:

var x = person;  // 不会创建 person 的副本,是引用

如果修改 x ,person 的属性也会改变:

var person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"}
 
var x = person;
x.age = 10;           //  x.age 和 person.age 都会改变

JavaScript prototype(原型对象)

所有的 JavaScript 对象都会从一个 prototype(原型对象)中继承属性和方法。

在前面的章节中我们学会了如何使用对象的构造器(constructor):

function Person(first, last, age, eyecolor) {
  this.firstName = first;
  this.lastName = last;
  this.age = age;
  this.eyeColor = eyecolor;
}
 
var myFather = new Person("John", "Doe", 50, "blue");
var myMother = new Person("Sally", "Rally", 48, "green");

我们也知道在一个已存在构造器的对象中是不能添加新的属性:

Person.nationality = "English";

要添加一个新的属性需要在在构造器函数中添加:

function Person(first, last, age, eyecolor) {
  this.firstName = first;
  this.lastName = last;
  this.age = age;
  this.eyeColor = eyecolor;
  this.nationality = "English";
}

prototype 继承

所有的 JavaScript 对象都会从一个 prototype(原型对象)中继承属性和方法:

  • Date 对象从 Date.prototype 继承。
  • Array 对象从 Array.prototype 继承。
  • Person 对象从 Person.prototype 继承。

所有 JavaScript 中的对象都是位于原型链顶端的 Object 的实例。

JavaScript 对象有一个指向一个原型对象的链。当试图访问一个对象的属性时,它不仅仅在该对象上搜寻,还会搜寻该对象的原型,以及该对象的原型的原型,依次层层向上搜索,直到找到一个名字匹配的属性或到达原型链的末尾。

Date 对象, Array 对象, 以及 Person 对象从 Object.prototype 继承。

添加属性和方法

有的时候我们想要在所有已经存在的对象添加新的属性或方法。

另外,有时候我们想要在对象的构造函数中添加属性或方法。

使用 prototype 属性就可以给对象的构造函数添加新的属性:

function Person(first, last, age, eyecolor) {
  this.firstName = first;
  this.lastName = last;
  this.age = age;
  this.eyeColor = eyecolor;
}
 
Person.prototype.nationality = "English";

当然我们也可以使用 prototype 属性就可以给对象的构造函数添加新的方法:

function Person(first, last, age, eyecolor) {
  this.firstName = first;
  this.lastName = last;
  this.age = age;
  this.eyeColor = eyecolor;
}
 
Person.prototype.name = function() {
  return this.firstName + " " + this.lastName;
};

JavaScript Number 对象


JavaScript 只有一种数字类型。

可以使用也可以不使用小数点来书写数字。


JavaScript 数字

JavaScript 数字可以使用也可以不使用小数点来书写:

var pi=3.14;    // 使用小数点
var x=34;       // 不使用小数点

极大或极小的数字可通过科学(指数)计数法来写:

var y=123e5;    // 12300000
var z=123e-5;   // 0.00123

所有 JavaScript 数字均为 64 位

JavaScript 不是类型语言。与许多其他编程语言不同,JavaScript 不定义不同类型的数字,比如整数、短、长、浮点等等。

在JavaScript中,数字不分为整数类型和浮点型类型,所有的数字都是由 浮点型类型。JavaScript 采用 IEEE754 标准定义的 64 位浮点格式表示数字,它能表示最大值(Number.MAX_VALUE)为 ±1.7976931348623157e+308,最小值(Number.MIN_VALUE)为 ±5e-324

此格式用 64 位存储数值,其中 0 到 51 存储数字(片段),52 到 62 存储指数,63 位存储符号:

值 (aka Fraction/Mantissa)指数(Exponent)符号(Sign)
52 bits (0 - 51) 11 bits (52 - 62)1 bit (63)

精度

整数(不使用小数点或指数计数法)最多为 15 位。

var x = 999999999999999;   // x 为 999999999999999
var y = 9999999999999999;  // y 为 10000000000000000

小数的最大位数是 17,但是浮点运算并不总是 100% 准确:

var x = 0.2+0.1; // 输出结果为 0.30000000000000004

八进制和十六进制

如果前缀为 0,则 JavaScript 会把数值常量解释为八进制数,如果前缀为 0 和 "x",则解释为十六进制数。

var y = 0377;
var z = 0xFF;

绝不要在数字前面写零,除非您需要进行八进制转换。 

默认情况下,JavaScript 数字为十进制显示。

但是你可以使用 toString() 方法 输出16进制、8进制、2进制。

var myNumber=128;
myNumber.toString(16);   // 返回 80
myNumber.toString(8);    // 返回 200
myNumber.toString(2);    // 返回 10000000

无穷大(Infinity)

当数字运算结果超过了JavaScript所能表示的数字上限(溢出),结果为一个特殊的无穷大(infinity)值,在JavaScript中以Infinity表示。同样地,当负数的值超过了JavaScript所能表示的负数范围,结果为负无穷大,在JavaScript中以-Infinity表示。无穷大值的行为特性和我们所期望的是一致的:基于它们的加、减、乘和除运算结果还是无穷大(当然还保留它们的正负号)。

myNumber=2;
while (myNumber!=Infinity)
{
    myNumber=myNumber*myNumber; // 重复计算直到 myNumber 等于 Infinity
}

除以0也产生了无限:

var x = 2/0;
var y = -2/0;

NaN - 非数字值

NaN 属性是代表非数字值的特殊值。该属性用于指示某个值不是数字。可以把 Number 对象设置为该值,来指示其不是数字值。

你可以使用 isNaN() 全局函数来判断一个值是否是 NaN 值。

var x = 1000 / "Apple";
isNaN(x); // 返回 true
var y = 100 / "1000";
isNaN(y); // 返回 false

除以0是无穷大,无穷大是一个数字:

var x = 1000 / 0;
isNaN(x); // 返回 false

数字可以是数字或者对象

数字可以私有数据进行初始化,就像 x = 123;

JavaScript 数字对象初始化数据, var y = new Number(123);

var x = 123;
var y = new Number(123);
typeof(x) // 返回 Number
typeof(y) // 返回 Object
var x = 123;             
var y = new Number(123);
(x === y) // 为 false,因为 x 是一个数字,y 是一个对象

Number 属性

属性描述
Number.MAX_VALUE最大值
Number.MIN_VALUE最小值
Number.NaN非数字
Number.NEGATIVE_INFINITY负无穷,在溢出时返回
Number.POSITIVE_INFINITY正无穷,在溢出时返回
Number.EPSILON

表示 1 和比最接近 1 且大于 1 的最小 Number 之间的差别

Number.MIN_SAFE_INTEGER最小安全整数。
Number.MAX_SAFE_INTEGER最大安全整数。

数字方法

方法描述
Number.parseFloat()将字符串转换成浮点数,和全局方法 parseFloat()作用一致。
Number.parseInt()

将字符串转换成整型数字,和全局方法parseInt()  作用一致。

Number.isFinite()判断传递的参数是否为有限数字。
Number.isInteger()判断传递的参数是否为整数。
Number.isNaN()判断传递的参数是否为 isNaN()。
Number.isSafeInteger()判断传递的参数是否为安全整数。

数字类型原型上的一些方法

方法描述
toExponential()返回一个数字的指数形式的字符串,如:1.23e+2
toFixed()

返回指定小数位数的表示形式。

var a=123;
b=a.toFixed(2); // b="123.00"
toPrecision()

返回一个指定精度的数字。如下例子中,a=123 中,3会由于精度限制消失:

var a=123;
b=a.toPrecision(2); // b="1.2e+2"
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
第 1 章 JavaScript 是什么...............................................1 3 1.1 历史简述..............................................1 1.2 JavaScript 实现..............................................2 1.2.1 ECMAScript 1.2.2 DOM..............................................5 1.2.3 BOM..............................................8 1.3 小结..............................................8 第 2 章 ECMAScript 基础...............................................9 2.1 语法..............................................9 2.2 变量..............................................10 2.3 关键字..............................................12 2.4 保留字..............................................12 2.5 原始值和引用值..............................................13 2.6 原始类型..............................................13 2.6.1 typeof 运算符..............................................14 2.6.2 Undefined 类型..............................................14 2.6.3 Null 类型..............................................15 2.6.4 Boolean 类型..............................................15 2.6.5 Number 类型..............................................15 2.6.6 String 类型..............................................17 2.7 转换..............................................18 2.7.1 转换成字符串..............................................18 2.7.2 转换成数字..............................................19 2.7.3 强制类型转换..............................................20 2.8 引用类型..............................................22 2.8.1 Object 类..............................................22 2.8.2 Boolean 类..............................................23 2.8.3 Number 类..............................................23 2.8.4 String 类..............................................24 2.8.5 instanceof 运算符..............................................28 2.9 运算符..............................................28 2.9.1 一元运算符..............................................28 2.9.2 位运算符..............................................32 2.9.3 Boolean 运算符..............................................37 2.9.4 乘性运算符..............................................40 2.9.5 加性运算符..............................................41 2.9.6 关系运算符..............................................42 2.9.7 等性运算符..............................................43 2.9.8 条件运算符..............................................45 2.9.9 赋值运算符..............................................45 2.9.10 逗号运算符..............................................46 2.10 语句..............................................46 2.10.1 if 语句..............................................46 2.10.2 迭代语句..............................................47 2.10.3 有标签的语句..............................................48 2.10.4 break 语句和 continue 语句..............................................48 2.10.5 with 语句..............................................50 2.10.6 switch 语句..............................................50 2.11 函数..............................................51 2.11.1 无重载..............................................53 2.11.2 arguments 对象..............................................53 2.11.3 Function 类..............................................54 2.11.4 闭包..............................................56 2.12 小结..............................................57 第 3 章 对象基础...............................................58 3.1 面向对象术语..............................................58 3.1.1 面向对象语言的要求..............................................58 3.1.2 对象的构成..............................................59 3.2 对象应用..............................................59 3.2.1 声明和实例化..............................................59 3.2.2 对象引用..............................................59 3.2.3 对象废除..............................................59 3.2.4 早绑定和晚绑定..............................................60 3.3 对象的类型..............................................60 3.3.1 本地对象..............................................60 3.3.2 内置对象..............................................70 3.3.3 宿主对象..............................................75 3.4 作用域..............................................75 3.4.1 公用、受保护和私有作用域..............................................75 3.4.2 静态作用域并非静态的..............................................76 3.4.3 关键字 this. 76 3.5 定义类或对象..............................................78 3.5.1 工厂方式..............................................78 3.5.2 构造函数方式..............................................80 3.5.3 原型方式..............................................80 3.5.4 混合的构造函数/原型方式..............................................81 3.5.5 动态原型方法..............................................82 3.5.6 混合工厂方式..............................................83 3.5.7 采用哪种方式..............................................84 3.5.8 实例..............................................84 3.6 修改对象..............................................86 3.6.1 创建新方法..............................................86 3.6.2 重定义已有方法..............................................87 3.6.3 极晚绑定..............................................88 3.7 小结..............................................88 第 4 章 继承. 104...............................................89 100 4.1 继承机制实例..............................................89 4.2 继承机制的实现..............................................90 4.2.1 继承的方式..............................................90 4.2.2 一个更实际的例子..............................................96 4.3 其他继承方式..............................................100 4.3.1 zInherit 4.3.2 xbObjects 4.4 小结..............................................108 第 5 章 浏览器中的 JavaScript 109 5.1 HTML 中的 JavaScript 109 5.1.1 <script/>标签..............................................109 5.1.2 外部文件格式..............................................110 5.1.3 内嵌代码和外部文件..............................................111 5.1.4 标签放置..............................................111 5.1.5 隐藏还是不隐藏..............................................113 5.1.6 <noscript/>标签..............................................113 5.1.7 XHTML 中的改变..............................................114 5.2 SVG 中的 JavaScript 116 5.2.1 SVG 基础..............................................116 5.2.2 SVG 中的<script/>标签..............................................117 5.2.3 SVG 中的标签放置..............................................118 5.3 BOM..............................................119 5.3.1 window 对象..............................................119 5.3.2 document 对象..............................................130 5.3.3 location 对象..............................................133 5.3.4 navigator 对象..............................................135 5.3.5 screen 对象..............................................136 5.4 小结..............................................137 第 6 章 DOM 基础...............................................138 6.1 什么是 DOM?..............................................138 6.1.1 XML 简介..............................................138 6.1.2 针对 XML 的 API 141 6.1.3 节点的层次..............................................141 6.1.4 特定语言的 DOM..............................................144 6.2 对 DOM 的支持..............................................145 6.3 使用 DOM..............................................145 6.3.1 访问相关的节点..............................................145 6.3.2 检测节点类型..............................................146 6.3.3 处理特性..............................................147 6.3.4 访问指定节点..............................................148 6.3.5 创建和操作节点..............................................150 6.4 HTML DOM 特征功能..............................................155 6.4.1 让特性像属性一样..............................................155 6.4.2 table 方法..............................................156 6.5 遍历 DOM..............................................158 6.5.1 NodeIterator. 158 6.5.2 TreeWalker. 163 6.6 测试与 DOM 标准的一致性..............................................165 6.7 DOM Level 3. 166 6.8 小结..............................................166 第 7 章 正则表达式...............................................167 7.1 正则表达式支持..............................................167 7.1.1 使用 RegExp 对象..............................................168 7.1.2 扩展的字符串方法..............................................169 7.2 简单模式..............................................170 7.2.1 元字符..............................................170 7.2.2 使用特殊字符..............................................170 7.2.3 字符类..............................................172 7.2.4 量词..............................................174 7.3 复杂模式..............................................177 7.3.1 分组..............................................177 7.3.2 反向引用..............................................178 7.3.3 候选..............................................179 7.3.4 非捕获性分组..............................................180 7.3.5 前瞻..............................................181 7.3.6 边界..............................................182 7.3.7 多行模式..............................................183 7.4 理解 RegExp 对象..............................................184 7.4.1 实例属性..............................................184 7.4.2 静态属性..............................................185 7.5 常用模式..............................................186 7.5.1 验证日期..............................................187 7.5.2 验证信用卡号..............................................188 7.5.3 验证电子邮件地址..............................................192 7.6 小结..............................................193 第 8 章 检测浏览器和操作系统 201...............................................194. 200 8.1 navigator 对象..............................................194. 198 8.2 检测浏览器的方式..............................................194 8.2.1 对象/特征检测法..............................................194 8.2.2 user-agent 字符串检测法..............................................195 8.3 user-agent 字符串简史..............................................196 8.3.1 Netscape Navigator 3.0 与 IE3.0. 196 8.3.2 Netscape Communicator 4.0 与 IE 4.0. 197 8.3.3 IE 5.0 及更高版本..............................................198 8.3.4 Mozilla 8.3.5 Opera 8.3.6 Safari 8.3.7 结语..............................................201 8.4 浏览器检测脚本..............................................201 8.4.1 方法学..............................................202 8.4.2 第一步..............................................202 8.4.3 检测 Opera................................................ 204 8.4.4 检测 Konqueror/Safari ...............................................206 8.4.5 检测 IE................................................ 208 8.4.6 检测 Mozilla. ...............................................209 8.5 平台/操作系统检测脚本..............................................211 8.5.1 方法学..............................................211 8.5.2 第一步..............................................212 8.5.3 检测 Windows 操作系统..............................................212 8.5.4 检测 Macintosh 操作系统..............................................214 8.5.5 检测 Unix 操作系统..............................................214 8.6 全部脚本..............................................215 8.7 例子:登录页面..............................................219 8.8 小结..............................................224 第 9 章 事件...............................................225 9.1 今天的事件..............................................225 9.2 事件流..............................................226 9.2.1 冒泡型事件..............................................226 9.2.2 捕获型事件..............................................227 9.2.3 DOM 事件流..............................................228 9.3 事件处理函数/监听函数..............................................22 9................................................ 230 9.3.1 IE 9.3.2 DOM..............................................231 9.4 事件对象..............................................232 9.4.1 定位...............................................233 9.4.2 属性...............................................233 9.4.3 相似性..............................................235 9.4.4 区别..............................................238 9.5 事件的类型..............................................240 9.5.1 鼠标事件..............................................240 9.5.2 键盘事件..............................................244 9.5.3 HTML 事件..............................................246 9.5.4 变化事件..............................................251 9.6 跨平台的事件..............................................252 9.6.1 EventUtil 对象..............................................252 9.6.2 添加/删除事件处理函数..............................................252 9.6.3 格式化 event 对象..............................................254 9.6.4 获取事件对象..............................................258 9.6.5 示例..............................................259 9.7 小结..............................................260 第 10 章 高级 DOM 技术...............................................261 10.1 样式编程..............................................261 10.1.1 DOM 样式的方法..............................................263 10.1.2 自定义鼠标提示..............................................264 10.1.3 可折叠区域..............................................265 10.1.4 访问样式表..............................................266 10.1.5 最终样式..............................................270 10.2 innerText 和 innerHTML. 271 10.3 outerText 和 outerHTML. 273 10.4 范围..............................................274 10.4.1 DOM 中的范围..............................................274 10.4.2 IE 中的范围..............................................284 10.4.3 范围在实际中的应用..............................................288 10.5 小结..............................................288 第 11 章 表单和数据完整性 ...............................................289 11.1 表单基础..............................................289 11.2 对<form/>元素进行脚本编写..............................................291 11.2.1 获取表单的引用..............................................291 11.2.2 访问表单字段..............................................291 11.2.3 表单字段的共性..............................................292 11.2.4 聚焦于第一个字段..............................................292 11.2.5 提交表单..............................................293 11.2.6 仅提交一次..............................................294 11.2.7 重置表单..............................................295 11.3 文本框..............................................295 11.3.1 获取/更改文本框的值..............................................296 11.3.2 选择文本..............................................297 11.3.3 文本框事件..............................................298 11.3.4 自动选择文本..............................................298 11.3.5 自动切换到下一个..............................................299 11.3.6 限制 textarea 的字符数..............................................300 11.3.7 允许/阻止文本框中的字符..............................................301 11.3.8 使用上下按键操作数字文本..............................................306 11.4 列表框和组合框..............................................308 11.4.1 访问选项..............................................309 11.4.2 获取/更改选中项..............................................309 11.4.3 添加选项..............................................310 11.4.4 删除选项..............................................311 11.4.5 移动选项..............................................312 11.4.6 重新排序选项..............................................313 11.5 创建自动提示的文本框..............................................313 11.5.1 匹配..............................................314 11.5.2 内部机制..............................................314 11.6 小结..............................................316 第 12 章 表格排序...............................................317 12.1 起点——数组..............................................317 12.2 对单列的表格排序..............................................319 12.2.1 比较函数..............................................320 12.2.2 sortTable()函数..............................................320 12.3 对多列表格进行排序..............................................323 12.3.1 比较函数生成器..............................................323 12.3.2 修改 sortTable()方法..............................................324 12.3.3 逆序排列..............................................325 12.3.4 对不同的数据类型进行排序..............................................327 12.3.5 高级排序..............................................330 12.4 小结..............................................334 第 13 章 拖放...............................................335 13.1 系统拖放..............................................335 13.1.1 拖放事件..............................................336 13.1.2 数据传输对象dataTransfer. 341 13.1.3 dragDrop()方法..............................................345 13.1.4 优点及缺点..............................................346 13.2 模拟拖放..............................................346 13.2.1 代码..............................................347 13.2.2 创建放置目标..............................................349 13.2.3 优点及缺点..............................................352 13.3 zDragDrop. 352 13.3.1 创建可拖动元素..............................................352 13.3.2 创建放置目标..............................................353 13.3.3 事件..............................................353 13.3.4 例子..............................................354 13.4 小结..............................................355 第 14 章 错误处理...............................................356 14.1 错误处理的重要性..............................................356 14.2 错误和异常..............................................357 14.3 错误报告..............................................358 14.3.1 IE(Windows)..............................................358 14.3.2 IE(MacOS)..............................................359 14.3.3 Mozilla(所有平台)..............................................359 14.3.4 Safari(MacOS)..............................................360 14.3.5 Opera 7(所有平台)..............................................361 14.4 处理错误..............................................362 14.4.1 onerror 事件处理函数..............................................362 14.4.2 try...catch 语句..............................................365 14.5 调试技巧..............................................370 14.5.1 使用警告框..............................................370 14.5.2 使用 Java 控制台..............................................371 14.5.3 将消息写入 JavaScript 控制台 (仅限 Opera 7+)..............................................372 14.5.4 抛出自定义错误..............................................372 14.5.5 JavaScript 校验器..............................................373 14.6 调试器..............................................374 14.6.1 Microsoft Script Debugger 374 14.6.2 Venkman. 376 14.7 小结..............................................383 第 15 章 JavaScript 中的 XML.. 384 15.1 浏览器中的 XML DOM 支持..............................................384 15.1.1 IE 中的 XML DOM 支持..............................................384 15.1.2 Mozilla 中 XML DOM 支持..............................................388 15.1.3 通用接口..............................................393 15.2 浏览器中的 XPath 支持..............................................403 15.2.1 XPath 简介..............................................403 15.2.2 IE 中的 XPath 支持..............................................404 15.2.3 Mozilla 中的 XPath 支持..............................................404 15.3 浏览器中的 XSLT 支持..............................................408 15.3.1 IE 中的 XSLT 支持..............................................410 15.3.2 Mozilla 中 XSLT 支持..............................................413 15.4 小结..............................................415 第 16 章 客户端与服务器端的通信...............................................416 16.1 cookie. 416 16.1.1 cookie 的成分..............................................416 16.1.2 其他安全限制..............................................417 16.1.3 JavaScript 中的 cookie. 417 16.1.4 服务器端的 cookie. 419 16.1.5 在客户端与服务器端之间 传递 cookie. 422 16.2 隐藏框架..............................................423 16.3 HTTP 请求..............................................426 16.3.1 使用 HTTP 首部..............................................428 16.3.2 实现的复制品..............................................429 16.3.3 进行 GET 请求..............................................430 16.3.4 进行 POST 请求..............................................430 16.4 LiveConnect 请求..............................................431 16.4.1 进行 GET 请求..............................................431 16.4.2 进行 POST 请求..............................................433 16.5 智能 HTTP 请求..............................................435 16.5.1 get()方法..............................................435 16.5.2 post()方法..............................................438 16.6 实际使用..............................................439 16.7 小结..............................................439 第 17 章 Web 服务...............................................440 17.1 Web 服务快速入门..............................................440 17.1.1 Web 服务是什么?..............................................440 17.1.2 WSDL. 441 17.2 IE 中的 Web 服务..............................................443 17.2.1 使用 WebService 组件..............................................444 17.2.2 WebService 组件例子..............................................445 17.3 Mozilla 中的 Web 服务..............................................447 17.3.1 加强的特权..............................................447 17.3.2 使用 SOAP 方法..............................................448 17.3.3 使用 WSDL 代理..............................................451 17.4 跨浏览器的方案..............................................454 17.4.1 WebService 对象..............................................454 17.4.2 Temperature 服务..............................................456 17.4.3 使用TemperatureService对象..............................................458 17.5 小结..............................................458 第 18 章 与插件进行交互...............................................459 18.1 为何使用插件..............................................459 18.2 流行的插件..............................................460 18.3 MIME 类型..............................................460 18.4 嵌入插件..............................................461 18.4.1 加入参数..............................................461 18.4.2 Netscape 4.x. 462 18.5 检测插件..............................................462 18.5.1 检测 Netscape 式插件..............................................463 18.5.2 检测 ActiveX 插件..............................................467 18.5.3 跨浏览器检测..............................................469 18.6 Java applet 470 18.6.1 嵌入 applet 470 18.6.2 在 JavaScript 中引用 applet 471 18.6.3 创建 applet 471 18.6.4 JavaScript 到 Java 的通信..............................................472 18.6.5 Java 到 JavaScript 的通信..............................................475 18.7 Flash 动画..............................................477 18.7.1 嵌入 Flash 动画..............................................477 18.7.2 引用 Flash 动画..............................................478 18.7.3 JavaScript 到 Flash 的通信..............................................478 18.7.4 Flash 到 JavaScript 通信..............................................481 18.8 ActiveX 控件..............................................483 18.9 小结..............................................485 第 19 章 部署问题...............................................486 19.1 安全性..............................................486 19.1.1 同源策略..............................................486 19.1.2 窗口对象问题..............................................487 19.1.3 Mozilla 特有的问题..............................................488 19.1.4 资源限制..............................................490 19.2 国际化..............................................491 19.2.1 使用 JavaScript 检测语言..............................................491 19.2.2 策略..............................................492 19.2.3 字符串的思考..............................................492 19.3 优化 JavaScript 495 19.3.1 下载时间..............................................495 19.3.2 执行时间..............................................499 19.4 知识产权的问题..............................................512 19.4.1 混淆..............................................512 19.4.2 Microsoft Script Encoder (仅 IE)..............................................513 19.5 小结..............................................514 第 20 章 JavaScript 的未来...............................................515 20.1 ECMAScript 4. 515 20.1.1 Netscape 的提案..............................................515 20.1.2 实现..............................................521 20.2 ECMAScript for XML. 522 20.2.1 途径..............................................522 20.2.2 for each..in 循环..............................................524 20.2.3 新的类..............................................524 20.2.4 实现..............................................532 20.3 小结..............................................532

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

你可知这世上再难遇我

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值