JavaScript权威指南

第一章 JavaScript概述

1.1 对JavaScript的误解
1.2 JavaScript的版本
1.3 客户端JavaScript
1.4 其他环境中的JavaScirpt
1.5 客户端的JavaScript:网页中的可执行内容
1.6 客户端JavaScript的特性
1.7 JavaScript的安全性
1.8 例子:用JavaScipt计算借贷支出
1.9 如何使用本书其余的部分
1.10 JavaScript探秘

第一部分 JavaScript的核心

第二章 语法结构

2.1 字符集
2.2 大小写敏感性
2.3 空白符和换行符
2.4 可选的分号
2.5 注释
2.6 直接量
2.7 标示符
2.8 保留字

第三章 数据类型和值

3.1 数字
3.2 字符串
3.3 布尔值
3.4 函数
3.5 对象
3.6 数组
3.7 null
3.8 undefined
3.9 Data对象
3.10 正则表达式
3.11 Error对象
3.12 基本数据类型的包装对象

第四章 变量

4.1 变量的类型
4.2 变量的声明
4.3 变量的作用域
4.4 基本类型和引用类型
4.5 无用存储单元的收集
4.6 作为属性的变量
4.7 深入理解变量的作用域

第五章 表达式和运算符

5.1 表达式
5.2 运算符概述
5.3 算术运算符
5.4 相等运算符
5.5 关系运算符
5.6 字符串运算符
5.7 逻辑运算符
5.8 逐位运算符
5.9 赋值运算符
5.10 其他运算符

第六章 语句

6.1 表达式语句
6.2 复合语句
6.3 if
6.4 else if
6.5 switch
6.6 while
6.7 do/while
6.8 for
6.9 for/in
6.10 标签语句
6.11 break
6.12 continue
6.13 var
6.14 function
6.15 return
6.16 throw
6.17 tyr/catch/finally
6.18 with
6.19 空语句
6.20 JavaScript语句小结

 第七章 函数

7.1 函数的定义和调用
7.2 作为数据的函数
7.3 函数的作用域:调用对象
7.4 函数的实际参数:Arguments对象
7.5 函数的属性和方法

第八章 对象

8.1 对象和属性
8.2 构造函数
8.3 方法
8.4 原型对象和继承
8.5 面向对象的JavaScript
8.6 作为关联数组的对象
8.7 对象的属性和方法

第九章 数组

9.1 数组和数组元素
9.2 数组的方法

第十章 使用正则表达式的模式匹配

10.1 正则表达式的定义
10.2 用于模式匹配的String方法
10.3 RegExp对象

第十一章 JavaScript的更多主题

11.1 数据类型转换
11.2 使用值和使用引用
11.3 无用存储单元收集
11.4 词法作用域和嵌套函数
11.5 Function()构造函数和函数直接量
11.6 Netscape公司的JavaScript 1.2的不兼容性

第二部分 客户端JavaScript

第十二章 Web浏览器中的JavaScript

12.1 Web浏览器环境
12.2 在HTML中嵌入JavaScript
12.3 JavaScript程序的执行

第十三章 窗口和框架

13.1  Window对象概述
13.2  简单的对话框
13.3  状态栏
13.4  超时设定和时间间隔
13.5  错误处理
13.6  Navigalor对象
13.7  Screen对象
13.8  Window对象的控制方法
13.9  Location对象
13.10 History对象
13.11 多窗口和多框架

第十四章 Document对象

14.1  Document对象概述
14.2  动态生成的文档
14.3  Document对象的颜色属性
14.4  Document对象的信息属性
14.5  表单
14.6  图象
14.7  链接
14.8  锚
14.9  小程序
14.10 嵌入式数据

第十五章 表单和表单元素

15.1 Form对象
15.2 定义表单元素
15.3 脚本化表单元素
15.4 表单验证示例

第十六章 脚本化cookie

16.1 cookie概览
16.2 cookie的存储
16.3 cookie的读取
16.4 cookie示例

第十七章 文档对象模型

17.1 DOM概览 
17.2 使用DOM的核心API
17.3 DOM与Internet Explorer 4的兼容性
17.4 DOM与Netscape 4的兼容性
17.5 简便方法:Traversal和Range API

第十八章 级联样式表和动态HTML

18.1 CSS的样式和样式表
18.2 用CSS进行元素定位
18.3 脚本样式
18.4 第四代浏览器中DHTML
18.5 关于样式和样式表的其他DOM API

第十九章 事件和事件处理

19.1 基本事件处理
19.2 2级DOM中的高级事件处理
19.3 Internet Explorer事件模型
19.4 Netscape 4事件模型

第二十章 兼容性

20.1 平台和浏览器的兼容性
20.2 语言版本的兼容性
20.3 非JavaScript浏览器的兼容性

第二十一章 JavaScript的安全性

21.1 JavaScript与安全性
21.2 受限制的特性
21.3 同源策略
21.4 安全区和签名脚本

第二十二章 在JavaScript中使用Java

22.1 脚本化Java小程序
22.1 在Java中使用JavaScript
22.3 直接使用Java类
22.4 LiveConnect数据类型
22.5 LiveConnect数据转换
22.6 JavaObject对象在JavaScript中的转换
22.7 从Java到JavaScript的数据转换

第三部分 JavaScript核心参考手册

*** JavaScript:采用Unicode字符集编写

***ECMAScript v3允许标示符中有Unicode转义序列,字符/u后接4个十六进制的数字,用来指定一个16位的字符编码

***JavaScript中的对象有两重:①一种对象表示的是已命名的值的无序集合
                          ②表示的是有编号的值的有序集合,称为数组array
                          JavaScript还定义了一种特殊的对象:函数function

***不区别整型数值和浮点型数值,JavaScript中所有的数字都是浮点型的,采
                           用IEEE 754标准定义的64位浮点格式表示数字
                           最大值+/-1.7976931348623157*10的303次方,
                           最小是+/-5*10的负324次方

***JavaScript的数字格式允许精确地表示:-9007199254740992(-2的53次方)
                                    和9007199254740992(2的53次方)之
                                    间的所有整数,包括两边端点数

***中的某些整数运算是对32位的整数执行的,尤其逐位运算,他们的范围从
                           -2147483648(-2的31次方)到2147483647(2的31次方-1)

 

***能识别十六进制的直接量 以“0X”或“0x”开头 如:0xff911

***JavaScript的浮点格式能精确表示出来的是有限个的:18437736874454810627个


***方法toString()可以用它的参数指定的基数或底数(底数必须在2和36之间)把数字转换成字符串。
                  如:将一个数字转换为二进制数字:
                      x.toString(2);


Infinity                   无穷大的特殊值
NaN                        特殊的非数字值
Number.MAX_VALUE           可表示的最大数字
Number.MIN_VALUE           可表示的最小数字(与零最接近的数字)
Number.NaN                 特殊的非数字值
Number.POSITIVE_INFINITY   正无穷大的特殊值
Number.NEGATIVE_INFINITY   负无穷大的特殊值


***无char这样的字符数据类型,要表示单个字符,必须使用长度为1的字符串

/n   是一个转义序列(escape sequence)
/u   表示由四位十六进制数指定的任意Unicode字符,如/u03c0表示π
/0   NULL字符(/u0000)
/b   退格符(/u0008)
/t   水平制表符(/u0009)
/n   换行(/u000A)
/v   垂直制表符(/u000B)
/f   换页   (/u00CC) 
/r   回车符 (/u00CD)
/"   双引号 (/u0022)
/'          (/u0027)
//          (/uC05C)  
/xXX    由两为十六进制数值XX指定的Latin-1字符
/uXXXX  有四位十六进制数XXXX指定的Unicode字符
/XXX    由一到三位八进制数(1到377)指定的Latin-1字符。
 


***RegExp对象,正则表达式

***基本数据类型的包装对象 包装(wrapper)

***隐式声明的变量总是被创建为全局变量  作用域(scope) 全局(global)
函数体内,局部变量的优先级高于同名的全局变量
无块级作用域 局部变量在整个函数体中都是有定义的,但
     在执行var语句前是不会初始化的
       var scope="global";
       fuction f() {
           alert(scope);            //显示"undefined",而不是"global";
           var scope="local";       //变量在此处初始化,但到处都有定义
           alert(scope);            //显示"local"
       }

 


***基本类型与引用类型,基本是值、引用只是引用。
            字符串好象与基本类型的实现一样,传递的是值
           
***garbage collection


***当JavaScript的解释器开始运行时,它首先,在执行任何JavaScript代码之
               前,创建一个全局对象(global object)。这个对象的属性
               就是JavaScript程序的全局变量.当声明一个JavaScript的全局
               变量时,实际上所做的是定义了那个全局对象的一个属性
               在顶层代码中可以使用this来引用这个全局对象。
               客户端JavaScript中,Window对象代表浏览器窗口,它是包
               含在该窗口中的所有JavaScript代码的全局对象。Window对象
               定义了全局的核心属性,此外它还定义了全局的客户端属性,如
               navigator和screen


***JavaScript的实现允许有多哥全局执行环境,每个执行环境有不同的全局对象
               (在此情况下,每个全局对象就不完全是全局的了)
                一个框架中的代码可以用parent.frames[1]来引用另一个框架
                中的JavaScript代码,在第二个框架中的代码可以使用
                parent.frames[0].x来引用第一个框架中的全局变量x


***值NaN永远不会与任何其他值等同,包括自身。检测其用全局函数isNaN()


***相等运算符(==)等同运算符(===)


***instanceof运算符:左边对象,右边构造函数名.左边对象是右边对象的一个实例,则返回true


***JavaScript中所有的数字都是浮点型的,但逐位运算符却要求它的数字运算数是整型的

<< :左移一位乘2,左移两位乘四,以次类推
>> :带符号右移:右移一位相当于用2除(丢弃余数),右移两位相当于用4除。正为0,负为1
>>>:用零补足的右移运算:左边来的总为0

***typeof返回字符串,说明了运算数的类型。
                  数字、字符串、布尔值,返回:number,string,boolean
                  对象、数组、null,返回:object
                  函数,返回:function
                  未定义的,返回:underfined

***delete,删除对象的属性、数组元素或变量,成功返回true,不能被删除也返回false
       某些内部的核心属性和客户端属性不能删除
       var语句声明的变量也不能删除
       delete只能影响属性值,并不能影响被这些属性引用的对象

void 舍弃运算数的值,返回undefined
     <a href="javascript:void window.open();">Open New Windows</a> 打开一个新的浏览器页面,但超链接还存在
     <a href="javascript:window.open();">Open New Windows</a>      打开一个新的浏览器页面,超链接不存在,出现:[object]


if(expression){ //expression为true,或者可以转换为true则执行statement语句
  statement;
  }

case(){    //匹配case表达式用===等同运算符,而不是==相等运算符

  }


***迭代(iteration)

***标签语句:identifier:statement.如果标签名和某个变量名或者函数名相同,不必担心命名冲突

***with语句:用变量的作用域和作用域链(即一个按顺序检索的对象列表)来进行变量名解析。with语句
      用于暂时修改作用域链
      with(frames[1].document.form[0]){
          name.value="";
          address.value="";
          email.value="";
      }
         使用了with语句的JavaScript代码很难优化,速度慢

 



Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1439501


 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值