Javascript教程 第三讲 JavaScript程序构成

第三讲JavaScript程序构

copyright dedecms

  JavaScript脚本语言的基本构成是由控制语句、函数、对象、方法、属性等,来实现编程的。 copyright dedecms

一、程序控制流 织梦好,好织梦

  在任何一种语言中,程序控制流是必须的,它能使得整个程序减小混乱,使之顺利按其一定的方式执行。下面是JavaScript常用的程序控制流结构及语句: dedecms.com

1、if条件语句 copyright dedecms

 基本格式

织梦内容管理系统

if(表述式) dedecms.com

语句段1; 内容来自dedecms

...... 本文来自织梦

else

copyright dedecms

语句段2;

copyright dedecms

.....

copyright dedecms

 功能:若表达式为true,则执行语句段1;否则执行语句段2。 织梦内容管理系统

 说明:

织梦好,好织梦

  • if -else 语句是JavaScript中最基本的控制语句,通过它可以改变语句的执行顺序。
  • 表达式中必须使用关系语句,来实现判断,它是作为一个布尔值来估算的。
  • 它将零和非零的数分别转化成false和true。
  • 若if后的语句有多行,则必须使用花括号将其括起来。

 

本文来自织梦

  1. if语句的嵌套

if(布尔值)语句1; 织梦内容管理系统

else(布尔值)语句2;

内容来自dedecms

else if(布尔值)语句3;

本文来自织梦

…… dedecms.com

else 语句4; copyright dedecms

 

copyright dedecms

在这种情况下,每一级的布尔表述式都会被计算,若为真,则执行其相应的语句,否则执行else后的语句。 织梦好,好织梦

 

dedecms.com

2、For循环语句

dedecms.com

 基本格式 织梦内容管理系统

for(初始化;条件;增量) copyright dedecms

语句集;

本文来自织梦

 功能:实现条件循环,当条件成立时,执行语句集,否则跳出循环体。 织梦好,好织梦

 说明: dedecms.com

  • 初始化参数告诉循环的开始位置,必须赋予变量的初值;
  • 条件:是用于判别循环停止时的条件。若条件满足,则执行循环体,否则 跳出。
  • 增量:主要定义循环控制变量在每次循环时按什么方式变化。
  • 三个主要语句之间,必须使用逗号分隔。

 

dedecms.com

3、while循环 dedecms.com

 基本格式

dedecms.com

while(条件)

内容来自dedecms

语句集;

本文来自织梦

该语句与For语句一样,当条件为真时,重复循环,否则退出循环。 copyright dedecms

 For与while语句

织梦内容管理系统

  两种语句都是循环语句,使用For语句在处理有关数字时更易看懂,也较紧凑;而while循环对复杂的语句效果更特别。

dedecms.com

4、break和continue语句

织梦内容管理系统

  与C++语言相同,使用break语句使得循环从For或while中跳出,continue使得跳过循环内剩余的语句而进入下一次循环。

织梦内容管理系统

二、函数

dedecms.com

  函数为程序设计人员提供了一个丰常方便的能力。通常在进行一个复杂的程序设计时,总是根据所要完成的功能,将程序划分为一些相对独立的部分,每部分编写一个函数。从而,使各部分充分独立,任务单一,程序清晰,易懂、易读、易维护。JavaScript函数可以封装那些在程序中可能要多次用到的模块。并可作为事件驱动的结果而调用的程序。从而实现一个函数把它与事件驱动相关联。这是与其它语言不样的地方。 dedecms.com

1、JavaScript函数定义

织梦好,好织梦

Function函数名 (参数,变元){

copyright dedecms

函数体;.

本文来自织梦

Return 表达式;

内容来自dedecms

} 织梦内容管理系统

说明: 织梦内容管理系统

 当调用函数时,所用变量或字面量均可作为变元传递。 copyright dedecms

 函数由关键字Function定义。

内容来自dedecms

 函数名:定义自己函数的名字。 copyright dedecms

 参数表,是传递给函数使用或操作的值,其值可以是常量 ,变量或其它表达式。

织梦好,好织梦

 通过指定函数名(实参)来调用一个函数。 dedecms.com

 必须使用Return将值返回。

织梦好,好织梦

 函数名对大小写是敏感的。 织梦内容管理系统

  织梦好,好织梦

2、函数中的形式参数:

织梦好,好织梦

  在函数的定义中,我们看到函数名后有参数表,这些参数变量可能是一个或几个。那么怎样才能确定参数变量的个数呢?在JavaScript中可通过arguments .Length来检查参数的个数。例: 织梦好,好织梦

Function function_Name(exp1,exp2,exp3,exp4)

织梦好,好织梦

Number =function _Name . arguments .length;

dedecms.com

if (Number>1)

织梦内容管理系统

document.wrile(exp2);

copyright dedecms

if (Number>2) copyright dedecms

document.write(exp3);

copyright dedecms

if(Number>3)

织梦内容管理系统

document.write(exp4);

织梦内容管理系统

...

织梦好,好织梦

  

本文来自织梦

三、事件驱动及事件处理 本文来自织梦

1、基本概念 本文来自织梦

  JavaScript是基于对象(object-based)的语言。这与Java不同,Java是面向对象的语言。而基于对象的基本特征,就是采用事件驱动(event-driven)。它是在用形界面的环境下,使得一切输入变化简单化。通常鼠标或热键的动作我们称之为事件(Event),而由鼠标或热键引发的一连串程序的动作,称之为事件驱动(Event Driver)。而对事件进行处理程序或函数,我们称之为事件处理程序(Event Handler)。

copyright dedecms

2、事件处理程序 copyright dedecms

  在JavaScript中对象事件的处理通常由函数(Function)担任。其基本格式与函数全部一样,可以将前面所介绍的所有函数作为事件处理程序。格式如下: 内容来自dedecms

Function 事件处理名(参数表){

织梦好,好织梦

事件处理语句集;

织梦好,好织梦

……

copyright dedecms

} 本文来自织梦

3、事件驱动 copyright dedecms

  JavaScript事件驱动中的事件是通过鼠标或热键的动作引发的。它主要有以下几个事件:

copyright dedecms

(1)单击事件onClick

内容来自dedecms

  当用户单击鼠标按钮时,产生onClick事件。同时onClick指定的事件处理程序或代码将被调用执行。通常在下列基本对象中产生:

织梦内容管理系统

  • button(按钮对象)
  • checkbox(复选框)或(检查列表框)
  • radio (单选钮)
  • reset buttons(重要按钮)
  • submit buttons(提交按钮)

例:可通过下列按钮激活change()文件: 织梦内容管理系统

<Form>

内容来自dedecms

<Input type="button" Value=“ ”onClick="change()"> 织梦内容管理系统

</Form> 本文来自织梦

  在onClick等号后,可以使用自己编写的函数作为事件处理程序,也可以使用JavaScript中内部的函数。还可以直接使用JavaScript的代码等。例:

本文来自织梦

<Input type="button" value=" " onclick=alert("这是一个例子"); 织梦好,好织梦

(2)onChange改变事件 织梦内容管理系统

  当利用text或texturea元素输入字符值改变时发该事件,同时当在select表格项中一个选项状态改变后也会引发该事件。

dedecms.com

例:<Form>

织梦好,好织梦

<Input type="text" name="Test" value="Test" onCharge="check('this.test)"> 织梦内容管理系统

</Form>

内容来自dedecms

(3)选中事件onSelect

织梦内容管理系统

  当Text或Textarea对象中的文字被加亮后,引发该事件。 织梦内容管理系统

(4)获得焦点事件onFocus

copyright dedecms

  当用户单击Text或textarea以及select对象时,产生该事件。此时该对象成为前台对象。 copyright dedecms

(5)失去焦点onBlur 内容来自dedecms

  当text对象或textarea对象以及select对象不再拥有焦点、而退到后台时,引发该文件,他与onFocas事件是一个对应的关系。 dedecms.com

(6)载入文件onLoad 织梦好,好织梦

  当文档载入时,产生该事件。onLoad一个作用就是在首次载入一个文档时检测cookie的值,并用一个变量为其赋值,使它可以被源代码使用。 本文来自织梦

(7)卸载文件onUnload 织梦内容管理系统

  当Web页面退出时引发onUnload事件,并可更新Cookie的状态。

织梦好,好织梦

四、范例 织梦好,好织梦

  范例1:下例程序是一个自动装载和自动卸载的例子。即当装入HTML文档时调用loadform()函数,而退出该文档进入另一HTML文档时则首先调用unloadform()函数,确认后方可进入。 织梦好,好织梦

test3_1.htm

内容来自dedecms

<HTML>

copyright dedecms

<HEAD> dedecms.com

<script Language="JavaScript">

dedecms.com

<!--

内容来自dedecms

function loadform(){ 本文来自织梦

alert("这是一个自动装载例子!"); 织梦好,好织梦

}

dedecms.com

function unloadform(){

copyright dedecms

alert("这是一个卸载例子!");

内容来自dedecms

}

dedecms.com

//--> copyright dedecms

</Script>

本文来自织梦

</HEAD>

dedecms.com

<BODY OnLoad="loadform()" OnUnload="unloadform()">

copyright dedecms

<a href="test.htm">调用</a> dedecms.com

</BODY>

本文来自织梦

</HTML> copyright dedecms

  内容来自dedecms

范例2:这是一个获取浏览器版本号的程序。该程序首先显示一个波浪一提示信息。之后显示浏览器的版本号有关信息。 织梦内容管理系统

test3_2.htm

织梦内容管理系统

<html>

copyright dedecms

<head> 织梦内容管理系统

<script language="JavaScript"><!--

copyright dedecms

// --> 本文来自织梦

function makeArray(n){

dedecms.com

this.length=n 织梦好,好织梦

return this

内容来自dedecms

} copyright dedecms

function hexfromdec(num) {

内容来自dedecms

hex=new makeArray(1); dedecms.com

var hexstring=""; dedecms.com

var shifthex=16;

内容来自dedecms

var temp1=num; 本文来自织梦

for(x=1; x>=0; x--) {

织梦好,好织梦

hex[x]=Math.round(temp1/shifthex - .5); 织梦内容管理系统

hex[x-1]=temp1 - hex[x] * shifthex; 织梦好,好织梦

temp1=hex[x-1]; 本文来自织梦

shifthex /= 16;

内容来自dedecms

} 本文来自织梦

for (x=1; x>=0; x--) { hexstring+=getletter(hex[x]); } dedecms.com

return (hexstring);

dedecms.com

}

本文来自织梦

 

内容来自dedecms

function getletter(num) {

dedecms.com

if (num < 10) { return num; } 织梦好,好织梦

else {

dedecms.com

    if (num == 10) { return "A" }

织梦内容管理系统

    if (num == 11) { return "B" } 织梦内容管理系统

    if (num == 12) { return "C" } 本文来自织梦

    if (num == 13) { return "D" } dedecms.com

    if (num == 14) { return "E" } dedecms.com

    if (num == 15) { return "F" } 织梦好,好织梦

} 内容来自dedecms

}

织梦好,好织梦

function rainbow(text){

本文来自织梦

var color_d1;

内容来自dedecms

var allstring=""; 内容来自dedecms

for(i=0;i<text.length;i=i+2){

织梦好,好织梦

color_d1=255*Math.sin(i/(text.length/3));

本文来自织梦

color_h1=hexfromdec(color_d1); 内容来自dedecms

allstring+="<FONT COLOR="+color_h1+"ff"+color_h1+">"+text.substring(i,i+2)+"</FONT>"; dedecms.com

} copyright dedecms

return allstring; 本文来自织梦

} 内容来自dedecms

 

织梦好,好织梦

function sizefont(text){

dedecms.com

var color_d1;

本文来自织梦

var allstring=""; dedecms.com

var flag=0;

copyright dedecms

for(i=0,j=0;i<text.length;i=i+1){ 织梦好,好织梦

if (flag==0) { copyright dedecms

j++; 织梦好,好织梦

if (j>=7) { 织梦内容管理系统

flag=1;}}

织梦好,好织梦

if (flag==1) { 内容来自dedecms

j=j-1;

织梦内容管理系统

if (j<=0) { 本文来自织梦

flag=0; }} 本文来自织梦

allstring+="<FONT SIZE="+ j + ">" + text.substring(i,i+1) + "</FONT>"; copyright dedecms

}

内容来自dedecms

return allstring;

dedecms.com

} dedecms.com

document.write("<font size=8><CENTER>")

内容来自dedecms

document.write("<BR><BR>")

本文来自织梦

document.write( sizefont("这是一个获取WEB浏览器的程序")) 织梦内容管理系统

document.write("</CENTER></font>") 织梦好,好织梦

document.write("浏览器名称: "+navigator.appName+"<br>"); 本文来自织梦

document.write("版本号: "+navigator.appVersion+"<br>");

内容来自dedecms

document.write("代码名字: "+navigator.appCodeName+"<br>"); copyright dedecms

document.write("用户代理标识: "+navigator.userAgent);

dedecms.com

</script>

本文来自织梦

<body> 织梦好,好织梦

</body> dedecms.com

</html> copyright dedecms

输出结果图1所示。 织梦内容管理系统

本文来自织梦

  织梦内容管理系统

图1 内容来自dedecms

  dedecms.com

  本讲介绍了JavaScript程序设计的有关内容。程序流、函数、事件是我们学习掌握JavaScript编程的重点。

本文来自织梦