第三讲 JavaScript程序构成
JavaScript脚本语言的基本构成是由控制语句、函数、对象、方法、属性等,来实现编程的。
一、程序控制流
在任何一种语言中,程序控制流是必须的,它能使得整个程序减小混乱,使之顺利按其一定的方式执行。下面是JavaScript常用的程序控制流结构及语句:
1、if条件语句
基本格式
if(表述式)
语句段1;
......
else
语句段2;
.....
功能:若表达式为true,则执行语句段1;否则执行语句段2。
说明:
if -else 语句是JavaScript中最基本的控制语句,通过它可以改变语句的执行顺序。
表达式中必须使用关系语句,来实现判断,它是作为一个布尔值来估算的。
它将零和非零的数分别转化成false和true。
若if后的语句有多行,则必须使用花括号将其括起来。
if语句的嵌套
if(布尔值)语句1;
else(布尔值)语句2;
else if(布尔值)语句3;
……
else 语句4;
在这种情况下,每一级的布尔表述式都会被计算,若为真,则执行其相应的语句,否则执行else后的语句。
2、For循环语句
基本格式
for(初始化;条件;增量)
语句集;
功能:实现条件循环,当条件成立时,执行语句集,否则跳出循环体。
说明:
初始化参数告诉循环的开始位置,必须赋予变量的初值;
条件:是用于判别循环停止时的条件。若条件满足,则执行循环体,否则 跳出。
增量:主要定义循环控制变量在每次循环时按什么方式变化。
三个主要语句之间,必须使用逗号分隔。
3、while循环
基本格式
while(条件)
语句集;
该语句与For语句一样,当条件为真时,重复循环,否则退出循环。
For与while语句
两种语句都是循环语句,使用For语句在处理有关数字时更易看懂,也较紧凑;而while循环对复杂的语句效果更特别。
4、break和continue语句
与C++语言相同,使用break语句使得循环从For或while中跳出,continue使得跳过循环内剩余的语句而进入下一次循环。
二、函数
函数为程序设计人员提供了一个丰常方便的能力。通常在进行一个复杂的程序设计时,总是根据所要完成的功能,将程序划分为一些相对独立的部分,每部分编写一个函数。从而,使各部分充分独立,任务单一,程序清晰,易懂、易读、易维护。JavaScript函数可以封装那些在程序中可能要多次用到的模块。并可作为事件驱动的结果而调用的程序。从而实现一个函数把它与事件驱动相关联。这是与其它语言不样的地方。
1、JavaScript函数定义
Function 函数名 (参数,变元){
函数体;.
Return 表达式;
}
说明:
当调用函数时,所用变量或字面量均可作为变元传递。
函数由关键字Function定义。
函数名:定义自己函数的名字。
参数表,是传递给函数使用或操作的值,其值可以是常量 ,变量或其它表达式。
通过指定函数名(实参)来调用一个函数。
必须使用Return将值返回。
函数名对大小写是敏感的。
2、函数中的形式参数:
在函数的定义中,我们看到函数名后有参数表,这些参数变量可能是一个或几个。那么怎样才能确定参数变量的个数呢?在JavaScript中可通过arguments .Length来检查参数的个数。例:
Function function_Name(exp1,exp2,exp3,exp4)
Number =function _Name . arguments .length;
if (Number>1)
document.wrile(exp2);
if (Number>2)
document.write(exp3);
if(Number>3)
document.write(exp4);
...
三、事件驱动及事件处理
1、基本概念
JavaScript是基于对象(object-based)的语言。这与Java不同,Java是面向对象的语言。而基于对象的基本特征,就是采用事件驱动(event-driven)。它是在用形界面的环境下,使得一切输入变化简单化。通常鼠标或热键的动作我们称之为事件(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('this.test)">
</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的状态。
四、范例
范例1:下例程序是一个自动装载和自动卸载的例子。即当装入HTML文档时调用loadform()函数,而退出该文档进入另一HTML文档时则首先调用unloadform()函数,确认后方可进入。
test3_1.htm
<HTML>
<HEAD>
<script Language="JavaScript">
<!--
function loadform(){
alert("这是一个自动装载例子!");
}
function unloadform(){
alert("这是一个卸载例子!");
}
//-->
</Script>
</HEAD>
<BODY OnLoad="loadform()" OnUnload="unloadform()">
<a href="test.htm">调用</a>
</BODY>
</HTML>
范例2:这是一个获取浏览器版本号的程序。该程序首先显示一个波浪一提示信息。之后显示浏览器的版本号有关信息。
test3_2.htm
<html>
<head>
<script language="JavaScript"><!--
// -->
function makeArray(n){
this.length=n
return this
}
function hexfromdec(num) {
hex=new makeArray(1);
var hexstring="";
var shifthex=16;
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;
}
for (x=1; x>=0; x--) { hexstring+=getletter(hex[x]); }
return (hexstring);
}
function getletter(num) {
if (num < 10) { return num; }
else {
if (num == 10) { return "A" }
if (num == 11) { return "B" }
if (num == 12) { return "C" }
if (num == 13) { return "D" }
if (num == 14) { return "E" }
if (num == 15) { return "F" }
}
}
function rainbow(text){
var color_d1;
var allstring="";
for(i=0;i<text.length;i=i+2){
color_d1=255*Math.sin(i/(text.length/3));
color_h1=hexfromdec(color_d1);
allstring+="<FONT COLOR="+color_h1+"ff"+color_h1+">"+text.substring(i,i+2)+"</FONT>";
}
return allstring;
}
function sizefont(text){
var color_d1;
var allstring="";
var flag=0;
for(i=0,j=0;i<text.length;i=i+1){
if (flag==0) {
j++;
if (j>=7) {
flag=1;}}
if (flag==1) {
j=j-1;
if (j<=0) {
flag=0; }}
allstring+="<FONT SIZE="+ j + ">" + text.substring(i,i+1) + "</FONT>";
}
return allstring;
}
document.write("<font size=8><CENTER>")
document.write("<BR><BR>")
document.write( sizefont("这是一个获取WEB浏览器的程序"))
document.write("</CENTER></font>")
document.write("浏览器名称: "+navigator.appName+"<br>");
document.write("版本号: "+navigator.appVersion+"<br>");
document.write("代码名字: "+navigator.appCodeName+"<br>");
document.write("用户代理标识: "+navigator.userAgent);
</script>
<body>
</body>
</html>
输出结果图1所示。
分享到:
相关推荐
在VBA(Visual Basic for Applications)编程环境中,语句、对象、方法和属性是构建有效程序的核心元素。本文将深入探讨这些概念,并提供详细的解释,帮助你更好地理解和应用它们。 首先,我们来看“语句”...
《Visual Basic 6.0 中文版实用参考手册(语句、函数、对象与方法篇)》是一本专为Visual Basic 6.0初学者和开发者编写的详细指南,涵盖了编程过程中常用的关键概念和技术。这本书的重点在于讲解VB6中的基本语句、内置...
VBA(Excel) 全对象、事件、属性、方法、函数、语句 中文说明 xlsx格式
标题中的“对象属性函数参考”指的是VBA中关于对象的属性和函数的详细文档。属性是对象的特性,例如一个工作表的名称、单元格的值或字体颜色;函数则是可以执行特定任务的代码块,如计算、数据操作或界面控制。 ...
VB语句、方法、事件和属性是构建VB程序的基本元素,掌握这些元素对于理解和编写VB代码至关重要。 **VB语句**是构成VB程序的基础单元,它们按照特定的语法结构执行特定任务。例如: - **赋值语句**:如`变量 = ...
此函数允许动态调用方法或设置/获取属性,其中 `object` 是任何有效的对象引用,`procedureName` 是方法或属性的名称,`callType` 指定调用类型(如 vbLet、vbGet 或 vbMethod),而 `arguments()` 是可选的参数列表...
VBA(Word) 全对象、事件、属性、方法、函数、语句 中文说明 xlsx格式
VBA(Access) 全对象、事件、属性、方法、函数、语句 中文说明 xlsx格式
VBA(Outlook) 全对象、事件、属性、方法、函数、语句 中文说明 xlsx格式
`Class`构造函数创建了一个`Demo`的实例,并使用`Object.extend`方法将当前对象的属性扩展到`Demo`实例上。最终,通过这种方式创建的`cs`对象具有了`showName`方法。 #### 七、总结 通过以上分析可以看出,在...
VBA(Power Point) 全对象、事件、属性、方法、函数、语句 中文说明 xlsx格式
本文将详细介绍JavaScript语言中各种分类语句的用法和特点,包括赋值语句、return语句、条件分支语句、循环语句、对象操作语句、注释语句、函数定义语句等。 1. 赋值语句:var var语句声明了一个变量的名称,同时也...
汇集了hql语句中大部分常用的函数 ABS(n) 取绝对值数学函数 数学函数 JPAQL HQL ABS(column_name[数字类型对象属性])
with 语句**:允许将一个对象的属性和方法作为全局变量使用,但通常避免使用,因为它可能导致代码难以理解和维护。 在实际编程中,理解和灵活运用这些流程控制语句,能帮助我们编写出更高效、可读性强的代码。在...
3. **面向对象的成员函数**:在类和对象中定义的方法,如属性(Property)和方法(Sub或Function)。 4. **Lambda表达式**:VB.NET 9.0引入的新特性,允许快速创建匿名函数,通常在LINQ查询中使用。 5. **泛型函数...
当我们将函数定义为对象的一个属性时,它就成为了该对象的方法。例如: ```javascript var myObject = { name: 'John', sayHello: function() { console.log('Hello, ' + this.name); } }; myObject.sayHello...
例如,在上面的示例代码中,我们使用`var xml = new ActiveXObject("atldll.test.1")`语句创建了一个COM组件的实例,然后可以调用该COM组件的方法和属性,例如`xml.test()`、`xml.test1("dddd")`和`xml.bstr`等。...
使用`MyControl.Property = Value`这样的语句,可以改变对象的属性,而`Value = MyControl.Property`则可以获取属性的值。 VB中的函数和属性通常结合使用,以实现复杂的逻辑。比如,你可以使用`Mid()`函数配合`Len...
属性: 记录对象所拥有的数据 实例变量 行为: 描述一个对象能做什么 实例方法 (self, ...) 类 class # 创建一个类 class 类名(继承列表): 类的语句块 # 创建一个函数 def 函数名(参数列表): 语句块 实例...
在Excel VBA(Visual Basic for Applications)编程中,掌握各种方法和属性是至关重要的,因为它们构成了VBA代码的核心部分,使我们能够控制和自动化Excel的工作簿、工作表、单元格以及许多其他对象。"EXCELVBA方法...