本书目录
第一章: JavaScript语言基础
第二章: JavaScript内置对象
第三章: 窗口window对象
第四章: 文档document对象
第五章: 表单form对象
第六章: History与Navigator对象
第七章: JavaScript框架编程
第八章: JavaScript异常处理
第九章: 自定义JavaScript对象
第一章 JavaScript语言基础
- 什么是JavaScript
- JavaScript是一种基于对象(Object)和事件驱动(Event Driven)并具有安全性能的脚本语
- 言。
- JavaScript的出现弥补了HTML语言的不足,它是Java与HTML折中的选择,具有以下几个基
- 本特点。
- 1、脚本编写
- JavaScript是一种脚本语言,它采用小程序段的方式实现编程。它作为一种解释性语言,不需要
- 进行编译,而是在程序运行过程中逐行地被解释。
- 2、基于对象
- JavaScript是一种基于对象的语言,这意味着它能运用自己已经创建的对象。因此,许多功能可
- 能来自于JavaScript运行环境(即浏览器本身)中对象的方法与JavaScript的对象相互作用。
- 3、简单性
- JavaScript的简单性首先主要体现在它基于Java的基本语句和控制流,是一种简单而紧凑的
- 语言,对于学习Java是一种非常好的过度;其次,它的变量类型是采用“弱类型”,并未使用严格
- 的数据类型。
- 4、安全性
- JavaScript是一种安全性语言,它不允许访问本地的硬盘,而且不能将数据存入到服务器上;
- 不允许对网络文档进行修改和删除,只能通过浏览器实现信息浏览或动态交互,从而有效地防止数据
- 的丢失。
- 5、动态性
- JavaScript是动态的,它可以直接对用户或客户输入做出响应而无需经过Web服务程序。它对
- 用户的响应是采用以事件驱动的方式进行的。所谓事件驱动,就是指在页面中执行某种操作所产生的动
- 作,比如按下鼠标、移动窗口或选择菜单等都可以视为事件,当事件发生后就会引起相应的事件响应。
- 6、跨平台性
- JavaScript仅依赖于浏览器本身,与操作系统无关,只要是能运行浏览器的计算机,并支持
- JavaScript的浏览器就可以正确执行。从而实现“编写一下,走遍天下” 的梦想。
-
- Java和Javascript的区别
- 1、基于对象和面向对象
- Java是一种真正的面向对象的语言,即使是开发简单的程序,必须设计对象。
- JavaScript是种脚本语言,它可以用来制作与网络无关的,与用户交互作用的复杂软件。它是
- 一种基于对象(Object Based)和事件驱动(Event Driver)的编程语言。因而它本身提供了非
- 常丰富的内部对象供设计人员使用。
- 2、解释和编译
- 两种语言在其浏览器中所执行的方式不一样。Java的源代码在传递到客户端执行之前,必须经过
- 编译,因而客户端上必须具有相应平台上的仿真器或解释器,它可以通过编译器或解释器实现独立
- 于某个特定的平台编译代码的束缚。
- JavaScript是一种解释性编程语言,其源代码在发往客户端执行之前不需经过编译,而是将文
- 本格式的字符代码发送给客户编由浏览器解释执行。
- 3、强变量和弱变量
- 两种语言所采取的变量是不一样的。
- Java采用强类型变量检查,即所有变量在编译之前必须作声明。
- JavaScript中变量声明,采用其弱类型。即变量在使用前不需作声明,而是解释器在运行时检
- 查其数据类型,
- 4、代码格式不一样
- Java是一种与HTML无关的格式,必须通过像HTML中引用外媒体那么进行装载,其代码以字节
- 代码的形式保存在独立的文档中。
- JavaScript的代码是一种文本字符格式,可以直接嵌入HTML文档中,并且可动态装载。编写
- HTML文档就像编辑文本文件一样方便。
- 5、嵌入方式不一样
- 在HTML文档中,两种编程语言的标识不同,JavaScript使用<Script>...</Script>来标
- 识,而Java使用<applet>...</applet>来标识,或采用java脚本语言。
- 6、静态联编和动态联编
- Java采用静态联编,即Java的对象引用必须在编译时的进行,以使编译器能够实现强类型检查。
- JavaScript采用动态联编,即JavaScript的对象引用在运行时进行检查,如不经编译则就
- 无法实现对象引用的检查。
-
- 第一节 语言基础
- 编写JavaScript程序
- 1、JavaScript直接嵌入HTML文件中
- 写在head或body标记对之间,要加标记如下:
- <script language="javascript">
- document.write("<font color=blue>Hello World!</font>");
- </script>
- 2、JavaScript程序存放在单独的.js文件中,再在HTML文件中链接
- <head>
- <script language="javascript" SRC="xxx.js"></script>
- </head>
- <body>
- <form>
- <input type=button onclick=show()>
- </form>
- </body>
- 在.js文件中直接书写javascript代码即可。
- function show(){
- document.write("hello world!");
- }
- 基本数据类型
- 在JavaScript中有四种基本的数据类型:
- 数值型(整数和实数)
- 字符串型(用""号或‘‘号括起来的字符或数值)
- 布尔型(使用true或false表示)
- 空值(null)
- 变量
- 在程序执行过程中值可变的量,是系统内存中的一个命名的存储单元。
- 变量的命名:
-
- 变量名以字母开头,中间可以出现数字,下划线。变量名不能有空格、+或其他符号
- 不能使用JavaScript的关键字作为变量。如:var、int、double、delete
- 变量名第一个单词全部小写,第二个单词开始每个单词的首字母大写,其余字母小写。
- 声明(定义)变量:
- var x, myString;
- var y=100, st="hello";
- cost=23.6;
- JavaScript中的保留字(关键字):
- abstract boolean break byte case catch
- char class const continue default do
- double else extends false final finally
- float for function goto if implements
- import in instanceof int interface long
- native new null package private protected
- public return short static super switch
- synchronized this throw throws transient true
- try var void while with
- 变量的作用域
- 在JavaScript中有全局变量和局部变量之分。全局变量时定义在所有函数体之外,其作用范围
- 是所有函数;而局部变量时定义在函数体之内,只对该函数是可见的。
- <script language="javascript">
- var quanju=100;
- function get(){
- var i=10;
- if(true){
- var j=1;
- }
- }
- </script>
- 常量
- 在程序执行过程中其值不可改变的量。
- 1、整型常量
- 如:123 ,512
- 2、实型常量
-
- 实型常量是由整数部分加小数部分表示,如3.14,12.43等,也可以使用科学或标准方法表示,
- 如5E7,4e5等。
- 3、布尔值
- 布尔常量只有两种取值true 或false。主要用来说明或代表一种状态或标志,用以控制操作流
- 程
- 4、字符型常量
- 字符型常量是指使用单引号(‘)括起来的字符或双引号(")括起来的字符串。例如,字符‘a‘,
- 字符串 "hello"。
- JavaScript也支持以反斜杠(\)开头的不可显示的特殊字符,通常称为控制字符。例如换行符
- (‘\r‘)、制表符(‘\t‘)等
- 5、空值
- JavaScript中有一个空值null,表示什么也没有。如试图引用没有定义的变量,就会返回一个
- null值。
- 运算符
- 运算符是完成某种操作的符号。
- 算术运算符:+, -, *, /, %, ++, --
- 比较运算符:= =, >, >=, <, <=, !=
- 逻辑运算符:&&, ||, !
- 赋值运算符:=, +=, -=, *=, /=,
- 表达式
- x=100;
- str="你好";
- t=null;
- 表达式通常是由变量、常量和函数通过运算符构成的有意义的算式。
- 如:a, a*2/3, (x+y)*10+(z-3)*20, x==y
- 第二节 控制结构
- 1、if 语句
- if (表达式){
- 语句块;
- }
- x=80;
- if (x>=60){
- document.write( "恭喜你,及格了!");
- }
- if (表达式){
- 语句块1 ;
- }else{
- 语句块2 ;
- }
- if (x>=0){
- y=x;
- }else{
- y=-x;
- }
- 2、switch语句
- switch(表达式) {
- case 值1:语句1; break;
- case 值2:语句2; break;
- case 值3:语句3; break;
- default: 语句4;
- }
- <script language="javascript">
- function getWeek(week){
- switch(week){
- case 0:
- st="星期日";
- break;
- case 1:
- st="星期一";
- break;
- case 2:
- st="星期二";
- break;
- case 3:
- st="星期三";
- break;
- case 4:
- st="星期四";
- break;
- case 5:
- st="星期五";
- break;
- case 6:
- st="星期六";
- break;
- default:
- st="错误";
- }
- return st;
- }
- </script>
- 3、for 语句
- for (初值表达式; 条件表达式; 更新语句) {
- }
- 4、While语句
- while(条件表达式) {
- }
- break语句:结束当前的循环或switch语句。
- continue语句:用于for或while语句中,结束本次循环,继续下一次循环。
-
- 第三节 函数
- 函数是一个设定名字的一系列JavaScript语句的有效组合。
- 函数可以带参数,也可以不带,可以有返回值,也可以没有
- 1、函数的定义
- function 函数名([参数列表]) {
- 语句块;
- [return 表达式;]
- }
- <script language="javascript">
- function max(a,b){
- var x;
- if (a>b)
- x=a;
- else
- x=b;
- return x;
- }
- </script>
- 2、调用函数
- 函数被调用时函数内的代码才真正被执行。
- 调用函数的方法就是使用函数的名称并赋给全部参数相应的值。
- <script language="javascript">
- max(20,30);
- </script>
- 或
- <input type="button" onClick="max(23,45);">
-
- 在JavaScript中调用函数时,可以向函数传递比在函数定义时参数数目要少的参数。在这种情
- 况下,只要不是试图去读那些没有传递过来的参数就行。
- 用typeof运算符可以得到参数的类型。对于未传递的参数,用typeof运算符得到的结果是
- “undefined”。示例如下:
- <script language="javascript">
- function get(a,b){
- document.write("参数a的数据类型是:"+typeof(a)+"<br>");
- document.write("参数b的数据类型是:"+typeof(b));
- }
- get(32.4);
- </script>
-
- 另外,JavaScript也可以向函数传递比在函数定义时参数数目要多的参数,为了读取这样的参
- 数,可以使用arguments数组。传递给函数的第一个参数是arguments数组的第一个元素,我们可
- 以用“函数名称.arguments[0]”来进行引用。示例如下:
- <script language="javascript">
- function getSum(){
- var sum=0;
- var number=getSum.arguments.length;
- for(var i=0;i<number;i++){
- sum+=getSum.arguments[i];
- }
- return sum;
- }
- document.write("23+54+65="+getSum(23,54,65));
- </script>
-
- 第四节 JavaScript系统函数
- JavaScript中的系统函数又称为内部方法,它们不属于任何对象,可以直接使用。它们可以完成许
- 多很常用的功能。
- 1、 eval( 字符串表达式)
- 返回字符串表达式中的运算结果值。
- 例:test=eval("x=8+9+5/2");
- document.write(test);
- 2、 escape(字符串)
- 返回字符串的一种简单编码,将非字母数字的符号转换为%加其unicode码的十六进制表示。
- 例如: escape("Hello there") 返回 "Hello%20there"
- 3、unescape(字符串)
- 将已编码的字符串还原为纯字符串。
- 4、parseFloat(字符串)
- 返回浮点数
- 5、parseInt(字符串,radix)
- 其中radix是数的进制,默认是十进制数 parseInt(字符串)
- 第五节 事件驱动及事件处理
- 在JavaScript中编写的函数,通常是在其他代码进行调用时才会执行。不过我们也可以将某个
- 函数与某个事件(Event,通常是鼠标或热键的动作)联系起来,使得当事件发生时执行该函数。这个
- 方法称之为事件驱动(Event Driver)。而对事件进行处理的函数,称之为事件处理程序(Event
- Handler事件句柄)。
- 1、事件
- JavaScript事件驱动中的事件是通过鼠标或热键的动作(点击或按下)引发的。下表中列出了
- 常见的事件及其说明。
- FF: Firefox, N: Netscape, IE: Internet Explorer
- 属性说明FF N IE
- onabort 图像加载被中断1 3 4
- onblur 元素失去焦点1 2 3
- onchange 用户改变域的内容1 2 3
- onclick 鼠标点击某个对象1 2 3
- ondblclick 鼠标双击某个对象1 4 4
- onerror 当加载文档或图像时发生某个错误1 3 4
- onfocus 元素获得焦点1 2 3
- onkeydown 某个键盘的键被按下1 4 3
- onkeypress 某个键盘的键被按下或按住1 4 3
- onkeyup 某个键盘的键被松开1 4 3
- onload 某个页面或图像被完成加载1 2 3
- onmousedown 某个鼠标按键被按下1 4 4
- onmousemove 鼠标被移动1 6 3
- onmouseout 鼠标从某元素移开1 4 4
- onmouseover 鼠标被移到某元素之上1 2 3
- onmouseup 某个鼠标按键被松开1 4 4
- onreset 重置按钮被点击1 3 4
- onresize 窗口或框架被调整尺寸1 4 4
- onselect 文本被选定1 2 3
- onsubmit 提交按钮被点击1 2 3
- onunload 用户退出页面1 2 3
- 2、事件与函数的关联
- 要将一个函数与某个HTML元素的事件关联起来,需要设置相应的HTML标记中的属性值。例如,
- 对于一个button元素的click事件的处理函数为MyProc(),则可以用如下的形式将事件与函数关
- 联起来:
- <script language="javascript">
- function myPorc(){
- alert(document.all("txt").value);
- }
- </script>
- <input type="text" name="txt" />
- <input type="button" value="Try" onClick="myPorc( );"/>
- 另一个示例,实现翻转图的效果,原来在网页上显示一幅图片,当用户把鼠标移到该图像上时,自
- 动将图像切换成新的一幅图片;当用户把鼠标移开时,最初的图像又被恢复回来。
- <script language="javascript">
- function imgover(){
- document.myForm.img1.src="color.jpg";
- }
- function imgout(){
- document.myForm.img1.src="gray.jpg";
- }
- </script>
- <form name="myForm">
- <img border=0 name="img1" src="gray.jpg"
- onmouseover="imgover();"
- onmouseout="imgout()">
- </form>
-
- 课后练习题:
- 1、计算1加到100的和
- 2、使用while语句计算1加到100的和
- 3、打印100以内的偶数序列 :02468。。。
- 4、循环1-100,单数次输出“好好学习!”,偶数次输出“天天向上!”
- 5、在死循环中用if和break实现连续打印20个*就结束循环。
- 6、编程查找满足下列条件的三个正整数:x+y+z=50并且x+2*y+5*z=100
- 7、编写函数输出下面的图案
- *
- **
- ***
- ****
- 最多的星数目为函数参数n所决定。
- 8、将a,b,c三个整数按它们数值的大小,从小到大的顺序打印显示。
- (练习if else语句)
- 9、编写函数输出下面的图案
- *
- **
- ***
- ****
- ***
- **
- *
- 行数为函数的参数n决定。
- 10、编写函数寻找水仙花数。
- (三位数各位数字的立方和恰巧是该数本身,100到999之间有四个这样的数)。<strong><span style="font-size:32px;color:#ff0000;">
- </span></strong>
第二章 JavaScript内置对象
- 对象概述
- JavaScript是一种基于对象的脚本语句,而不是面向对象的编程语言。
- 对象就是客观世界存在的实体,具有属性和方法两方面特性。
- 访问对象的属性和方法的方式如下:
- 对象名.属性
- 对象名.方法名()
- 第一节 数组对象类型 Array
- 数组可以存放很多相同类型的数据。有数组名代表所有这些数据,而用
- 数组名[下标]表示其中某个元素(下标从0开始)。
- 如:var myA=["张三","李四","王五"];
- document.write(myA);
- myA[0]指向第一个元素
- myA[2]指向第三个元素
- 1、建立数组的三种方法:
- (1) 使用方括号,创建数组的同时赋初值
- var myA=["张三", "李四","王五"];
- var b=[10,20,30,40];
- (2) 使用new 操作符,创建数组的同时赋初值
- var myA=new Array("张三", "李四","王五");
- 注意圆括号和方括号的区别,不能任意使用。
- (3) 先创建长度为10的数组,内容后面再赋值
- var anArray = new Array(9);
- anArray[0]= "张三";
- anArray[1]= "李四";
- anArray[2]= "王五";
-
- 2、数组的属性
- length
- 数组名.length 返回数组中元素的个数
- 如:myA.length 为 3
- 例:使用for语句输出myA数组的各个元素。
- for(i=0;i<myA.length;i++){
- alert(myA[i]);
- }
- 3、数组的方法
- join(分割符)
- 该方法的功能是把数组中所有数据用指定的分割符连接起来,以一个字符串的形式表达出来。
- 例如:
- myA.join("/") 返回一个字符串 "张三/李四/王五"
- reverse()
- 该方法的功能是将数组中的元素整个反转顺序。
- 例如:
- myA.reverse( ) 数组变为 ["王五","李四","张三"]
- sort()
- 该方法的功能是将数组元素排序(汉字按拼音的字母顺序)。
- 例如:
- myA.sort () 数组变为 ["李四","王五","张三"]
- concat()
- 方法用于连接两个或多个数组。
- 下面的例子将把 concat() 中的参数连接到数组 a 中
- <script type="text/javascript">
- var a = [1,2,3];
- document.write(a.concat(4,5));
- </script>
- 下面的例子创建了两个数组,然后使用 concat() 把它们连接起来
- <script type="text/javascript">
- var arr = ["George","John","Thomas"];
- var arr2 = ["James","Adrew","Martin"];
- document.write(arr.concat(arr2));
- </script>
- 下面的例子创建了三个数组,然后使用 concat() 把它们连接起来
- <script type="text/javascript">
- var arr = ["George","John","Thomas"];
- var arr2 = ["James","Adrew","Martin"];
- var arr3 = ["William","Franklin"];
- document.write(arr.concat(arr2,arr3));
- </script>
- pop()
- 方法用于删除并返回数组的最后一个元素。
- 删除数组的最后一个元素,把数组长度减 1,并且返回它删除的元素的值。如果数组已经为空,
- 则 pop() 不改变数组,并返回 undefined 值。
- <script type="text/javascript">
- var arr = ["George","John","Thomas"];
- document.write(arr);
- document.write("<br />");
- document.write(arr.pop());
- document.write("<br />");
- document.write(arr);
- </script>
- push()
- 方法可向数组的末尾添加一个或多个元素,并返回新的长度。
- 语法:arrayObject.push(newelement1,newelement2,....,newelementX)
- push() 方法可把它的参数顺序添加到 arrayObject 的尾部。它直接修改 arrayObject,而
- 不是创建一个新的数组。push() 方法和 pop() 方法使用数组提供的先进后出栈的功能。
- <script type="text/javascript">
- var arr = ["George","John","Thomas"];
- document.write(arr + "<br />");
- document.write(arr.push("James") + "<br />");
- document.write(arr);
- </script>
- shift()
- 方法用于把数组的第一个元素从其中删除,并返回第一个元素的值。
- 如果数组是空的,那么 shift() 方法将不进行任何操作,返回 undefined 值。请注意,该方
- 法不创建新数组,而是直接修改原有的 arrayObject。
- <script type="text/javascript">
- var arr = ["George","John","Thomas"];
- document.write(arr + "<br />");
- document.write(arr.shift() + "<br />");
- document.write(arr);
- </script>
- unshift()
- 方法可向数组的开头添加一个或更多元素,并返回新的长度。
- unshift() 方法将把它的参数插入 arrayObject 的头部,并将已经存在的元素顺次地移到
- 较高的下标处,以便留出空间。该方法的第一个参数将成为数组的新元素 0,如果还有第二个参数,
- 它将成为新的元素 1,以此类推。
- 请注意,unshift() 方法不创建新的创建,而是直接修改原有的数组。
- <script type="text/javascript">
- var arr = ["George","John","Thomas"];
- document.write(arr + "<br />");
- document.write(arr.unshift("William") + "<br />");
- document.write(arr);
- </script>
- slice(start,end)
- 从已有的数组中返回选定的元素。
- <script type="text/javascript">
- var arr = ["George","John","Thomas"];
- document.write(arr + "<br />");
- document.write(arr.slice(1) + "<br />");
- document.write(arr);
- </script>
- <script type="text/javascript">
- var arr =["George","John","Thomas","James","Adrew","Martin"];
- document.write(arr + "<br />");
- document.write(arr.slice(2,4) + "<br />");
- document.write(arr);
- </script>
- splice()
- 方法用于插入、删除或替换数组的元素。
- 语法:arrayObject.splice(index,howmany,element1,.....,elementX)
- splice() 方法可删除从 index 处开始的零个或多个元素,并且用参数列表中声明的一个或多
- 个值来替换那些被删除的元素。
- 参数描述
- index
- 必需。规定从何处添加/删除元素。
- 该参数是开始插入和(或)删除的数组元素的下标,必须是数字。
- howmany 必需。规定应该删除多少元素。必须是数字,但可以是 "0"。
- 如果未规定此参数,则删除从 index 开始到原数组结尾的所有元素。
- element1 可选。规定要添加到数组的新元素。从 index 所指的下标处开始插入。
- elementX 可选。可向数组添加若干元素。
- 下面的实例中,创建一个新数组,并向其添加一个元素:
- <script type="text/javascript">
- var arr =["George","John","Thomas","James","Adrew","Martin"];
- document.write(arr + "<br />");
- arr.splice(2,0,"William");
- document.write(arr + "<br />");
- </script>
- 下面的实例中,将删除位于 index 2 的元素,并添加一个新元素来替代被删除的元素:
- <script type="text/javascript">
- var arr =["George","John","Thomas","James","Adrew","Martin"];
- document.write(arr + "<br />");
- arr.splice(2,1,"William");
- document.write(arr);
- </script>
- 下面的实例中,将删除从 index 2 ("Thomas") 开始的三个元素,并添加一个新元素
- ("William") 来替代被删除的元素:
- <script type="text/javascript">
- var arr =["George","John","Thomas","James","Adrew","Martin"];
- document.write(arr + "<br />");
- arr.splice(2,3,"William");
- document.write(arr);
- </script>
- 4、内部数组
- 在网页对象中,有很多本身就是数组对象。例如:document对象的forms属性就是一个数组对
- 象,其中每个元素对应网页中的一个表单,示例如下:
- <form name="firstForm"></form>
- <form name="secondForm"></form>
- <form name="thirdForm"></form>
- <script language="javascript">
- var fs=document.forms;
- for(i=0;i<fs.length;i++){
- alert(fs[i].name);
- }
- </script>
- 表单中的一个选择列表的options属性也是一个数组对象,其中每个元素对应于列表中的一个
- 选择项目
- <form name="myForm">
- <select multiple size="5" name="box" style="width:150" onClick="f(this);">
- <option value="apple">苹果</option>
- <option value="orange">橘子</option>
- <option value="banana">香蕉</option>
- </select>
- </form>
- <script language="javascript">
- function f(o){
- for(i=0;i<o.options.length;i++){
- alert(o.options[i].value+","+o.options[i].text);
- }
- }
- </script>
-
- 第二节 字符串对象类型 String
- myStr="我们来自五湖四海!";
- 或
- myStr= new String("我们来自五湖四海!");
- 1、字符串的长度属性
- myStr.length 返回字符串中字符的个数9,一个汉字算一个字符。
- 2、字符串的方法
- 分为两大类,如下:
- (1) 格式设置方法:
- big(), bold(), fontcolor(颜色字符串), fontsize(字体号), sub(), sup()
- (2) 通用字符串操作。
- str="Hello";
- 方法描述示例及结果
- anchor() 创建 HTML 锚。str.anchor("b"):<A NAME=”b”>Hello</A>
- big() 用大号字体显示字符串。str.big() : <BIG>Hello</BIG>
- blink() 显示闪动字符串。str.blink() : <BLINK>Hello</BLINK>
- bold() 使用粗体显示字符串。str.bold() : <B>Hello</B>
- charAt() 返回在指定位置的字符。"北京欢迎你".charAt(2)结果是"欢"
- "北京欢迎你".charAt(0)结果是"北"
- charCodeAt() 返回在指定的位置的字符的
- Unicode 编码。
- "北京欢迎你".charCodeAt(2)结果是27426
- concat() 连接字符串。"北京".concat("欢迎你")结果是"北京欢迎你"
- fixed() 以打字机文本显示字符串。str.fixed() : <FIXED>Hello</FIXED>
- fontcolor() 使用指定的颜色来显示字符串。str. Fontcolor ("Red") :
- <FONT color="red">Hello</FONT>
- fontsize() 使用指定的尺寸来显示字符串。str. fontsize () : <FONT
- size="3">Hello</FONT>
- indexOf() 检索字符串。"北京欢迎你".indexOf("欢迎")结果是2
- "北京欢迎你".indexOf("上海")结果是-1
- "北京欢迎你,欢迎".indexOf("欢迎")结果是2
- italics() 使用斜体显示字符串。str. italics () : <I>Hello</I>
- lastIndexOf() 从后向前搜索字符串。"北京欢迎你,欢迎".lastIndexOf("欢迎")结果是6
- link() 将字符串显示为链接。str.link("http://www.javakc.com") :
- <a href="http://www.javakc.com"> Hello
- </a>
- match() 找到一个或多个正则表达式的匹配。
- replace() 替换与正则表达式匹配的子串。
- search() 检索与正则表达式相匹配的值。
- slice() 提取字符串的片断,并在新的字符
- 串中返回被提取的部分。
- "北京欢迎你".slice(2,4) 结果是"欢迎"
- small() 使用小字号来显示字符串。str.small():<SMALL>Hello</SMALL>
- split() 把字符串分割为字符串数组。"北京|欢迎你|欢迎".split("|")结果是
- 数组{"北京","欢迎你","欢迎"}
- strike() 使用删除线来显示字符串。str.strike():<strike>Hello </strike>
- sub() 把字符串显示为下标。
- str.sub( ) : <sub> Hello </sub>
- substr() 从起始索引号提取字符串中指定数
- 目的字符。
- "北京欢迎你".substr(1,2) 结果是"京欢"
- substring() 提取字符串中两个指定的索引号之
- 间的字符。
- "北京欢迎你".substring(2,4)结果是"欢迎"
- sup() 把字符串显示为上标。str.sup():<sub> Hello </sub>1
- toLowerCase() 把字符串转换为小写。
- (不改变旧的字符串)
- "Welcome to BeiJing".toLowerCase()结果
- 是
- welcome to beijing
- toUpperCase() 把字符串转换为大写。
- (不改变旧的字符串)
- "Welcome to BeiJing".toUpperCase()结果
- 是WELCOME TO BEIJING
-
- 第三节 数学类 Math
- 包含了常用的数学常量和函数。不需要创建该类型的对象,而可以直接使用Math.属性名或
- Math.方法名来使用这些常量和方法。
- Math.E 返回2.718
- Math.PI 返回3.14159
- Math 对象方法
- 方法描述
- abs(x) 返回数的绝对值。
- acos(x) 返回数的反余弦值。
- asin(x) 返回数的反正弦值。
- atan(x) 以介于 -PI/2 与 PI/2 弧度之间的数值来返回 x 的反正切值。
- atan2(y,x) 返回从 x 轴到点 (x,y) 的角度(介于 -PI/2 与 PI/2 弧度之间)。
- ceil(x) 对数进行上舍入。
- cos(x) 返回数的余弦。
- exp(x) 返回 e 的指数。
- floor(x) 对数进行下舍入。
- log(x) 返回数的自然对数(底为e)。
- max(x,y) 返回 x 和 y 中的最高值。
- min(x,y) 返回 x 和 y 中的最低值。
- pow(x,y) 返回 x 的 y 次幂。
- random() 返回 0 ~ 1 之间的随机数。
- round(x) 把数四舍五入为最接近的整数。
- sin(x) 返回数的正弦。
- sqrt(x) 返回数的平方根。
- tan(x) 返回角的正切。
- toSource() 返回该对象的源代码。
- valueOf() 返回 Math 对象的原始值。
- 第四节 日期时间类 Date
- 该类型对象中存放年月日时分秒等信息。
- 1、创建日期对象的几种办法:
- new Date() 不带参数,则以系统时间为新创建日期对象的内容。
- new Date(毫秒数) 以距1970年1月1日零时到期望时间的毫秒数为参数,创建日期对象
- new Date(2005,6,3,21,0,22) 设定2005年7月3日,注意月从0开始的
- new Date("July 3, 2005 21:00:22") 以指定的时间为新创建日期对象的内容
- 2、日期对象的方法:
- getDate() 返回几号
- getDay() 返回星期几 (0代表星期日,1到6代表星期一到星期六)
- getHours() 返回几点
- getMinutes() 返回分钟数
- getSeconds() 返回秒数
- getTime() 返回距1970年1月1日零时到期望时间的毫秒数
- getYear() 返回年份
- setDate() 设置几号
- setDay() 设置星期几 (0代表星期日,1到6代表星期一到星期六)
- setHours() 设置几点
- setMinutes() 设置分钟数
- setSeconds() 设置秒数
- setTime() 以距1970年1月1日零时到期望时间的毫秒数为参数,设置时间
- setYear() 设置年份
-
- 课后练习题:
- 1、倒序输出一个字符串的每个字符。
- 2、显示姓“李”和姓“王”的同学名单。
- 3、显示姓名中含“宁”的名单。
- 4、编写随机点名程序。
- 5、产生50个100以内的随机数,找出其中最大值和最小值,并统计大于等于60的有多少个。
- 6、编写倒计时程序(距明年春节的天数)。
第三章 窗口window对象
- 在JavaScript中可以使用window和self标志符来引用当前的浏览器窗口。
- 每个打开的窗口定义一个window对象,如果文档包含框架(frame 或 iframe 标签),浏览
- 器会为 HTML 文档创建一个 window 对象,并为每个框架创建一个额外的 window 对象。
- 可以使用top标识符引用最上层的窗口,或使用parent标志符引用当前窗口的父窗口。
- 第一节 Window 对象属性
- 属性描述
- closed 返回窗口是否已被关闭。
- defaultStatus 设置或返回窗口状态栏中的默认文本。
- document 对 Document 对象的只读引用。请参阅 Document 对象。
- history 对 History 对象的只读引用。请参数 History 对象。
- innerheight 返回窗口的文档显示区的高度。
- innerwidth 返回窗口的文档显示区的宽度。
- length 设置或返回窗口中的框架数量。
- location 用于窗口或框架的 Location 对象。请参阅 Location 对象。
- name 设置或返回窗口的名称。
- Navigator 对 Navigator 对象的只读引用。请参数 Navigator 对象。
- opener 返回对创建此窗口的窗口的引用。
- outerheight 返回窗口的外部高度。
- outerwidth 返回窗口的外部宽度。
- pageXOffset 设置或返回当前页面相对于窗口显示区左上角的 X 位置。
- pageYOffset 设置或返回当前页面相对于窗口显示区左上角的 Y 位置。
- parent 返回父窗口。
- Screen 对 Screen 对象的只读引用。请参数 Screen 对象。
- self 返回对当前窗口的引用。等价于 Window 属性。
- status 设置窗口状态栏的文本。
- top 返回最顶层的先辈窗口。
- window window 属性等价于 self 属性,它包含了对窗口自身的引用。
- · screenLeft
- · screenTop
- · screenX
- · screenY
- 只读整数。声明了窗口的左上角在屏幕上的的 x 坐标和 y 坐标。IE、Safari 和
- Opera 支持 screenLeft 和 screenTop,而 Firefox 和 Safari 支持
- screenX 和 screenY。
- 第二节 Window 对象方法
- 方法描述
- alert() 显示带有一段消息和一个确认按钮的警告框。
- blur() 把键盘焦点从顶层窗口移开。
- clearInterval() 取消由 setInterval() 设置的 timeout。
- clearTimeout() 取消由 setTimeout() 方法设置的 timeout。
- close() 关闭浏览器窗口。
- confirm() 显示带有一段消息以及确认按钮和取消按钮的对话框。
- createPopup() 创建一个 pop-up 窗口。
- focus() 把键盘焦点给予一个窗口。
- moveBy() 可相对窗口的当前坐标把它移动指定的像素。
- moveTo() 把窗口的左上角移动到一个指定的坐标。
- open() 打开一个新的浏览器窗口或查找一个已命名的窗口。
- print() 打印当前窗口的内容。
- prompt() 显示可提示用户输入的对话框。
- resizeBy() 按照指定的像素调整窗口的大小。
- resizeTo() 把窗口的大小调整到指定的宽度和高度。
- scrollBy() 按照指定的像素值来滚动内容。
- scrollTo() 把内容滚动到指定的坐标。
- setInterval() 按照指定的周期(以毫秒计)来调用函数或计算表达式。
- setTimeout() 在指定的毫秒数后调用函数或计算表达式。
- 第三节 常用方法示例
- (1)打开和关闭窗口:
- open 打开另外一个窗口来显示新的页面。
- window.open(URL,窗口名称,可选参数)
- close() 关闭用Open方法打开的窗口
- 可选参数:“toolbar=yes, width=500,height=200”
- (2)对话框方法
- alert (提示字符串) 提示信息,只有一个“确定”按钮
- confirm (提示字符串) 选择确定或取消,返回值:true, false
- <html>
- <head>
- <script type="text/javascript">
- function disp_confirm(){
- var r=confirm("请点击一个按钮");
- if (r==true){
- document.write("您点击了确认!");
- }else{
- document.write("您点击了取消!");
- }
- }
- </script>
- </head>
- <body>
- <input type="button" onclick="disp_confirm()" value="显示一个确认框" />
- </body>
- </html>
- prompt(提示字符串,初始值) 让用户在对话框中输入
- <html>
- <head>
- <script type="text/javascript">
- function disp_prompt(){
- var name=prompt("请输入您的名字","Bill Gates");
- if (name!=null && name!=""){
- document.write("你好," + name + "!今天过得好吗?");
- }
- }
- </script>
- </head>
- <body>
- <input type="button" onclick="disp_prompt()" value="显示一个提示框" />
- </body>
- </html>
- (3)移动窗口方法:
- (窗口左上角为坐标0,0点)
- moveBy 窗口横向纵向移动多少象素 moveBy(10,10)
- <html>
- <head>
- <script type="text/javascript">
- function moveWin(){
- myWindow.moveBy(50,50);
- myWindow.focus();
- }
- </script>
- </head>
- <body>
- <script type="text/javascript">
- myWindow=window.open(‘‘,‘‘,‘width=200,height=100‘);
- myWindow.document.write("This is ‘myWindow‘");
- </script>
- <input type="button" value="Move ‘myWindow‘" onclick="moveWin()" />
- </body>
- </html>
- moveTo 窗口移动到参数指定的位置 moveTo(100,100)
- <html>
- <head>
- <script type="text/javascript">
- function moveWin(){
- myWindow.moveTo(0,0);
- myWindow.focus();
- }
- </script>
- </head>
- <body>
- <script type="text/javascript">
- myWindow=window.open(‘‘,‘‘,‘width=200,height=100‘);
- myWindow.document.write("This is ‘myWindow‘");
- </script>
- <input type="button" value="Move ‘myWindow‘" onclick="moveWin()" />
- </body>
- </html>
- (4)定时方法:
- 设置定时器,按指定时间间隔,反复执行某函数:
- setInterval 和 clearInterval (见跑马灯程序)
- <html>
- <body>
- <input type="text" id="clock" size="35" />
- <script language=javascript>
- var int=self.setInterval("clock()",50);
- function clock(){
- var t=new Date();
- document.getElementById("clock").value=t;
- }
- </script>
- <button onclick="int=window.clearInterval(int)">
- Stop interval
- </button>
- </body>
- </html>
- 设置定时器,按指定时间间隔,执行一遍某函数:
- setTimeout 和 clearTimeout
- <html>
- <head>
- <script type="text/javascript">
- function timedMsg(){
- var t=setTimeout("alert(‘5 seconds!‘)",5000);
- }
- </script>
- </head>
- <body>
- <form>
- <input type="button" value="显示计时的消息框!"
- onClick = "timedMsg()">
- </form>
- <p>点击上面的按钮。5 秒后会显示一个消息框。</p>
- </body>
- </html>
- (5)聚焦方法 :
- 让窗口处于激活状态。
- window.focus()
- <html>
- <body>
- <script type="text/javascript">
- myWindow=window.open(‘‘,‘‘,‘width=200,height=100‘);
- myWindow.document.write("This is ‘myWindow‘");
- myWindow.focus();
- </script>
- </body>
- </html>
第四章 文档document对象
- DOM (文档对象模型)
- ? window 整个浏览器窗口的统称,是最上层的唯一对象。这一级可以省略,是系统默认值。
- ? document 是Window的一个子对象,包含当前文档(HTML文件)中所有的对象。
- ? form 即表单,包含许多子对象。
- ? window、document和history对象是系统定义好的,其它对象是由我们程序员自己定义的。
- 我们要为每个对象起一个名称。
- 第一节 document对象概述
- document对象最强大的一个特性在于它的组织性。如果给页面中的元素起个名字,则可以把该元
- 素当成document 对象的一个属性来处理。例如,如果在form 元素“form1”中有一个名叫
- “ txtbox” 的文本框, 则可以像下面这样去引用该文本框中的文本:
- document.form1.txtbox.value。
- 除了将HTML元素按名字组织起来外,document对象还有许多属性、方法、事件,这些特点可以
- 帮助我们扩展程序的功能。
- Document 对象集合
- 集合描述
- all[] 提供对文档中所有 HTML 元素的访问。
- anchors[] 返回对文档中所有 Anchor 对象的引用。
- applets 返回对文档中所有 Applet 对象的引用。
- forms[] 返回对文档中所有 Form 对象引用。
- images[] 返回对文档中所有 Image 对象引用。
- links[] 返回对文档中所有 Area 和 Link 对象引用。
- Document 对象属性
- 属性描述
- body
- 提供对 <body> 元素的直接访问。
- 对于定义了框架集的文档,该属性引用最外层的 <frameset>。
- cookie 设置或返回与当前文档有关的所有 cookie。
- domain 返回当前文档的域名。
- lastModified 返回文档被最后修改的日期和时间。
- referrer 返回载入当前文档的文档的 URL。
- title 返回当前文档的标题。
- URL 返回当前文档的 URL。
- Document 对象方法
- 方法描述
- close() 关闭用 document.open() 方法打开的输出流,并显示选定的数据。
- getElementById() 返回对拥有指定 id 的第一个对象的引用。
- getElementsByName() 返回带有指定名称的对象集合。
- getElementsByTagName() 返回带有指定标签名的对象集合。
- open() 打开一个流,以收集来自任何 document.write() 或
- document.writeln() 方法的输出。
- write() 向文档写 HTML 表达式 或 JavaScript 代码。
- writeln() 等同于 write() 方法,不同的是在每个表达式之后写一个换行符。
- 第二节 document对象的事件(body标记中)
- onkeydown 按下任意键
- onkeypress 将按下任意键
- onkeyup 释放键
- onclick 单击鼠标
- ondblclick 双击鼠标
- onmousedown 按下鼠标
- onmouseup 释放鼠标
- load 文档装载完毕
- unload 文档卸载完毕
- 可以使用attachEvent方法,为body添加事件。
- document.attachEvent (‘onclick‘,getA);
第五章 表单form对象
第六章 History与Navigator对象
- History对象
- History 对象包含用户(在浏览器窗口中)访问过的 URL。
- History 对象是 window 对象的一部分,可通过 window.history 属性对其进行访问。
- History 对象属性
- 属性描述
- length 返回浏览器历史列表中的 URL 数量。
- History 对象方法
- 方法描述
- back() 加载 history 列表中的前一个 URL。
- forward() 加载 history 列表中的下一个 URL。
- go(number|URL) 加载 history 列表中的某个具体页面。
- -1表示前一个页面
- Navigator 对象
- Navigator 对象包含有关浏览器的信息。可以使用这些属性进行平台专用的配置。
- Navigator 对象的实例是唯一的,可以用 Window 对象的 navigator 属性来引用它。
- Navigator 对象集合
- 集合描述
- plugins[]
- 返回对文档中所有嵌入式对象的引用。
- 该集合是一个 Plugin 对象的数组,其中的元素代表浏览器已经安装的插件。Plug-in
- 对象提供的是有关插件的信息,其中包括它所支持的 MIME 类型的列表。
- 虽然 plugins[] 数组是由 IE 4 定义的,但是在 IE 4 中它却总是空的,因为 IE
- 4 不支持插件和 Plugin 对象。
- Navigator 对象属性
- 属性描述
- appCodeName 返回浏览器的代码名。
- appMinorVersion 返回浏览器的次级版本。
- appName 返回浏览器的名称。
- appVersion 返回浏览器的平台和版本信息。
- browserLanguage 返回当前浏览器的语言。
- cookieEnabled 返回指明浏览器中是否启用 cookie 的布尔值。
- cpuClass 返回浏览器系统的 CPU 等级。
- onLine 返回指明系统是否处于脱机模式的布尔值。
- platform 返回运行浏览器的操作系统平台。
- systemLanguage 返回 OS 使用的默认语言。
- userAgent 返回由客户机发送服务器的 user-agent 头部的值。
- userLanguage 返回 OS 的自然语言设置。
- Navigator 对象方法
- 方法描述IE F O
- javaEnabled() 规定浏览器是否启用 Java。4 1 9
- taintEnabled() 规定浏览器是否启用数据污点 (data tainting)。4 1 9
第七章 JavaScript框架编程
第八章 JavaScript异常处理
- 在代码的运行过程中一般会发生两种错误:一是程序内部的逻辑或者语法错误;二是运行环境或
- 者用户输入中不可预知的数据造成的错误。JavaScript可以捕获异常并进行相应的处理,从而避免
- 了浏览器向用户报错。
- 1、利用try-catch-finally处理异常
- 用户可以使用该结构处理可能发生异常的代码,如果发生异常,则由catch捕获异常并进行相应
- 的处理,其语法如下:
- try{
- }catch(e){
- }finally{
- }
- 这与java或者C#异常处理的语言室一致的。通过异常处理,可以避免程序停止运行,从而具有
- 了一定的自我修复能力。在Ajax开发中,利用异常处理的一个典型应用就是创建XMLHttpRequest
- 对象,不同浏览器创建它的方式也是不一样的,为了使代码能够跨浏览器运行,就可以利用异常。一种
- 方法不行,再可以用另一种方法,知道不发生异常为止,例如:
- <script type="text/javascript">
- var xmlhttp;
- try{
- xmlhttp=new ActionXObject("Microsoft.XMLHTTP");
- }catch(e){
- try{
- xmlhttp=new XMLHttpRequest();
- }catch(e){
- }
- }
- </script>
- 利用这种方式,就可以跨浏览器创建XMLHttpRequest对象。
-
- 2、利用throw处理异常
- 在JavaScript中有其内部的异常机制,在遇到非法操作的时候能自动抛出异常,但在实际的开
- 发中,随着程序的复杂,需要自己实现异常,可以通过throw语句来实现:“throw value”;
- 其中vlaue 就是要抛出的异常变量,它可以是JavaScript 中的任何一种类型,但在
- JavaScript 内部的异常中, 异常参数e 是一个名为error 的对象, 可以通过new
- Error(message)来创建这个对象,异常的描述被作为error对象的一个属性message,可以由
- 构造函数传入,也可以之后赋值。通过这个异常描述,可以让程序获取异常的详细信息,从而自动处理,
- 例如,下面的程序用于计算两个数据的积,如果参数不是数字,则抛出异常:
- <script type="text/javascript">
- function sum(a,b){
- a=parseInt(a);
- b=parseInt(b);
- if(isNaN(a) || isNaN(b)){
- throw new Error("参数不是数字");
- }
- return a*b;
- }
- try{
- var s=sum(1,"a");
- }catch(e){
- alert(e.message);
- }
- </script>
- 程序中使用字母作为参数传递给sum函数是错误的,所以函数内跑粗了一个异常对象,这个对象
- 被catch语句获取,并使用alert语句显示了其详细信息,
第九章 自定义JavaScript对象
javascript入门经典、零基础学习
原文:http://www.cnblogs.com/luotuo/p/5361755.html