JavaScript程序构成
JavaScript脚本语言的基本构成是由控制语句函数对象方法属性等来实现编程的
一程序控制流
在任何一种语言中程序控制流是必须的它能使得整个程序减小混乱使之顺利按其一定的方式执行下面是JavaScript常用的程序控制流结构及语句:
1if条件语句
基本格式
if(表述式)
语句段1
else
语句段2
功能若表达式为true则执行语句段1否则执行语句段2
说明
if else 语句是JavaScript中最基本的控制语句通过它可以改变语句的执行顺序
表达式中必须使用关系语句来实现判断它是作为一个布尔值来估算的
它将零和非零的数分别转化成false和true
若if后的语句有多行则必须使用花括号将其括起来
if语句的嵌套
if(布尔值)语句1
else(布尔值)语句2
else if(布尔值)语句3
……
else 语句4
在这种情况下每一级的布尔表述式都会被计算若为真则执行其相应的语句否则执行else后的语句
2For循环语句
基本格式
for(初始化条件增量)
语句集
功能实现条件循环当条件成立时执行语句集否则跳出循环体
说明
初始化参数告诉循环的开始位置必须赋予变量的初值
条件是用于判别循环停止时的条件若条件满足则执行循环体否则 跳出
增量主要定义循环控制变量在每次循环时按什么方式变化
三个主要语句之间必须使用逗号分隔
3while循环
基本格式
while(条件)
语句集
该语句与For语句一样当条件为真时重复循环否则退出循环
For与while语句
两种语句都是循环语句使用For语句在处理有关数字时更易看懂也较紧凑而while循环对复杂的语句效果更特别
4break和continue语句
与C++语言相同使用break语句使得循环从For或while中跳出continue使得跳过循环内剩余的语句而进入下一次循环
二函数
函数为程序设计人员提供了一个丰常方便的能力通常在进行一个复杂的程序设计时总是根据所要完成的功能将程序划分为一些相对独立的部分每部分编写一个函数从而使各部分充分独立任务单一程序清晰易懂易读易维护JavaScript函数可以封装那些在程序中可能要多次用到的模块并可作为事件驱动的结果而调用的程序从而实现一个函数把它与事件驱动相关联这是与其它语言不样的地方
1JavaScript函数定义
Function 函数名 (参数变元){
函数体;
Return 表达式;
}
说明
当调用函数时所用变量或字面量均可作为变元传递
函数由关键字Function定义
函数名定义自己函数的名字
参数表是传递给函数使用或操作的值其值可以是常量 变量或其它表达式
通过指定函数名(实参)来调用一个函数
必须使用Return将值返回
函数名对大小写是敏感的
2函数中的形式参数
在函数的定义中我们看到函数名后有参数表这些参数变量可能是一个或几个那么怎样才能确定参数变量的个数呢?在JavaScript中可通过arguments Length来检查参数的个数
例
Function function_Name(expexpexpexp)
Number =function _Name arguments length;
if (Number>)
documentwrile(exp);
if (Number>)
documentwrite(exp);
if(Number>)
documentwrite(exp);
三
事件驱动及事件处理
1基本概念
JavaScript是基于对象(objectbased)的语言这与Java不同Java是面向对象的语言而基于对象的基本特征就是采用事件驱动(eventdriven)它是在用形界面的环境下使得一切输入变化简单化通常鼠标或热键的动作我们称之为事件(Event)而由鼠标或热键引发的一连串程序的动作称之为事件驱动(Event Driver)而对事件进行处理程序或函数我们称之为事件处理程序(Event Handler)
2事件处理程序
在JavaScript中对象事件的处理通常由函数(Function)担任其基本格式与函数全部一样可以将前面所介绍的所有函数作为事件处理程序
格式如下
Function 事件处理名(参数表){
事件处理语句集
……
}
3事件驱动
JavaScript事件驱动中的事件是通过鼠标或热键的动作引发的它主要有以下几个事件
(1)单击事件onClick
当用户单击鼠标按钮时产生onClick事件同时onClick指定的事件处理程序或代码将被调用执行通常在下列基本对象中产生
button(按钮对象)
checkbox(复选框)或(检查列表框)
radio (单选钮)
reset buttons(重要按钮)
submit buttons(提交按钮)
例可通过下列按钮激活change()文件
<Form>
<Input type=button Value= onClick=change()>
</Form>
在onClick等号后可以使用自己编写的函数作为事件处理程序也可以使用JavaScript中内部的函数还可以直接使用JavaScript的代码等例
<Input type=button value= onclick=alert(这是一个例子);
(2)onChange改变事件
当利用text或texturea元素输入字符值改变时发该事件同时当在select表格项中一个选项状态改变后也会引发该事件
例
<Form>
<Input type=text name=Test value=Test onCharge=check(thistest)>
</Form>
(3)选中事件onSelect
当Text或Textarea对象中的文字被加亮后引发该事件
(4)获得焦点事件onFocus
当用户单击Text或textarea以及select对象时产生该事件此时该对象成为前台对象
(5)失去焦点onBlur
当text对象或textarea对象以及select对象不再拥有焦点而退到后台时引发该文件他与onFocas事件是一个对应的关系
(6)载入文件onLoad
当文档载入时产生该事件onLoad一个作用就是在首次载入一个文档时检测cookie的值并用一个变量为其赋值使它可以被源代码使用
(7)卸载文件onUnload
当Web页面退出时引发onUnload事件并可更新Cookie的状态
四范例
范例下例程序是一个自动装载和自动卸载的例子即当装入HTML文档时调用loadform()函数而退出该文档进入另一HTML文档时则首先调用unloadform()函数确认后方可进入
<HTML>
<HEAD>
<script Language=JavaScript>
<!
function loadform(){
alert(这是一个自动装载例子!);
}
function unloadform(){
alert(这是一个卸载例子!);
}
//>
</Script>
</HEAD>
<BODY OnLoad=loadform() OnUnload=unloadform()>
<a >调用</a>
</BODY>
</HTML>
范例这是一个获取浏览器版本号的程序该程序首先显示一个波浪一提示信息之后显示浏览器的版本号有关信息
<html>
<head>
<script language=JavaScript><!
// >
function makeArray(n){
thislength=n
return this
}
function hexfromdec(num) {
hex=new makeArray();
var hexstring=;
var shifthex=;
var temp=num;
for(x=; x>=; x) {
hex[x]=Mathround(temp/shifthex );
hex[x]=temp hex[x] * shifthex;
temp=hex[x];
shifthex /= ;
}
for (x=; x>=; x) { hexstring+=getletter(hex[x]); }
return (hexstring);
}
function getletter(num) {
if (num < ) { return num; }
else {
if (num == ) { return A }
if (num == ) { return B }
if (num == ) { return C }
if (num == ) { return D }
if (num == ) { return E }
if (num == ) { return F }
}
}
function rainbow(text){
var color_d;
var allstring=;
for(i=;i<textlength;i=i+){
color_d=*Mathsin(i/(textlength/));
color_h=hexfromdec(color_d);
allstring+=<FONT COLOR=+color_h+ff+color_h+>+textsubstring(ii+)+</FONT>;
}
return allstring;
}
function sizefont(text){
var color_d;
var allstring=;
var flag=;
for(i=j=;i<textlength;i=i+){
if (flag==) {
j++;
if (j>=) {
flag=;}}
if (flag==) {
j=j;
if (j<=) {
flag=; }}
allstring+=<FONT SIZE=+ j + > + textsubstring(ii+) + </FONT>;
}
return allstring;
}
documentwrite(<font size=><CENTER>)
documentwrite(<BR><BR>)
documentwrite( sizefont(这是一个获取WEB浏览器的程序))
documentwrite(</CENTER></font>)
documentwrite(浏览器名称: +navigatorappName+<br>);
documentwrite(版本号: +navigatorappVersion+<br>);
documentwrite(代码名字: +navigatorappCodeName+<br>);
documentwrite(用户代理标识: +navigatoruserAgent);
</script>
<body>
</body>
</html>
输出结果图所示
图
本讲介绍了JavaScript程序设计的有关内容程序流函数事件是我们学习掌握JavaScript编程的重点