JavaScript基础系列(3)

流程控制和函数
if语句
和java一样
如果希望指定的条件成立时执行代码,就可以使用这个语句。
语法:
if (条件)
{
条件成立时执行代码

注意:请使用小写字母。使用大写的 IF 会出错!
实例 1
<script type="text/javascript">
//Write a "Good morning" greeting if
//the time is less than 10


var d=new Date()
var time=d.getHours()


if (time<10) 
{
document.write("<b>Good morning</b>")
}
</script>
实例 2
<script type="text/javascript">
//Write "Lunch-time!" if the time is 11


var d=new Date()
var time=d.getHours()


if (time==11) 
{
document.write("<b>Lunch-time!</b>")
}
</script>
注意:请使用双等号 (==) 来比较变量!
注意:在语法中没有 else。仅仅当条件为 true 时,代码才会执行。
If...else 语句
如果希望条件成立时执行一段代码,而条件不成立时执行另一段代码,那么可以使用 if....else 语句。
语法:
if (条件)
{
条件成立时执行此代码
}
else
{
条件不成立时执行此代码
}
实例
<script type="text/javascript">
//If the time is less than 10,
//you will get a "Good morning" greeting.
//Otherwise you will get a "Good day" greeting.


var d = new Date()
var time = d.getHours()


if (time < 10) 
{
document.write("Good morning!")
}
else
{
document.write("Good day!")
}
</script>
If...else if...else 语句
当需要选择多套代码中的一套来运行时,请使用 if....else if...else 语句。
语法:
if (条件1)
{
条件1成立时执行代码
}
else if (条件2)
{
条件2成立时执行代码
}
else
{
条件1和条件2均不成立时执行代码
}
实例:
<script type="text/javascript">


var d = new Date()
var time = d.getHours()


if (time<10)
{
document.write("<b>Good morning</b>")
}
else if (time>10 && time<16)
{
document.write("<b>Good day</b>")
}
else
{
document.write("<b>Hello World!</b>")
}
</script>


switch
和java一样
如果希望选择执行若干代码块中的一个,你可以使用 switch 语句:
语法:
switch(n)
   {
   case 1:
     执行代码块 1
     break
   case 2:
     执行代码块 2
     break
   default:
     如果n即不是1也不是2,则执行此代码
   }
工作原理:switch 后面的 (n) 可以是表达式,也可以(并通常)是变量。然后表达式中的值会与 case 中的数字作比较,如果与某个 case 相匹配,那么其后的代码就会被执行。break 的作用是防止代码自动执行到下一行。
实例:
<script type="text/javascript">
//You will receive a different greeting based
//on what day it is. Note that Sunday=0,
//Monday=1, Tuesday=2, etc.


var d=new Date()
theDay=d.getDay()


switch (theDay)
   {
   case 5:
     document.write("Finally Friday")
     break
   case 6:
     document.write("Super Saturday")
     break
   case 0:
     document.write("Sleepy Sunday")
     break
   default:
     document.write("I'm looking forward to this weekend!")
}
</script>


循环
和java一样
while(condition){


}


while (变量<=结束值)
{
    需执行的代码
}
解释:下面的例子定义了一个循环程序,这个循环程序的参数 i 的起始值为 0。该程序会反复运行,直到 i 大于 10 为止。i 的步进值为 1。
<html>
<body>
<script type="text/javascript">
var i=0
while (i<=10)
{
document.write("The number is " + i)
document.write("<br />")
i=i+1
}
</script>
</body>
</html>
结果:
The number is 0
The number is 1
The number is 2
The number is 3
The number is 4
The number is 5
The number is 6
The number is 7
The number is 8
The number is 9
The number is 10


do{
}while(condition)


do...while 循环是 while 循环的变种。该循环程序在初次运行时会首先执行一遍其中的代码,然后当指定的条件为 true 时,它会继续这个循环。所以可以这么说,do...while 循环为执行至少一遍其中的代码,即使条件为 false,因为其中的代码执行后才会进行条件验证。
语法:
do
{
    需执行的代码
}
while (变量<=结束值)
实例:
<html>
<body>
<script type="text/javascript">
var i=0
do 
{
document.write("The number is " + i)
document.write("<br />")
i=i+1
}
while (i<0)
</script>
</body>
</html>
结果:
The number is 0




for(){
}


for (变量=开始值;变量<=结束值;变量=变量+步进值) 
{
    需执行的代码
}


实例:
解释:下面的例子定义了一个循环程序,这个程序中 i 的起始值为 0。每执行一次循环,i 的值就会累加一次 1,循环会一直运行下去,直到 i 等于 10 为止。
注释:步进值可以为负。如果步进值为负,需要调整 for 声明中的比较运算符。
<html>
<body>


<script type="text/javascript">
var i=0
for (i=0;i<=10;i++)
{
document.write("The number is " + i)
document.write("<br />")
}
</script>


</body>
</html>
结果:
The number is 0
The number is 1
The number is 2
The number is 3
The number is 4
The number is 5
The number is 6
The number is 7
The number is 8
The number is 9
The number is 10






几个代码案例:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title> New Document </title>
<meta name="Generator" content="EditPlus">
<meta name="Author" content="">
<meta name="Keywords" content="">
<meta name="Description" content="">
</head>


<body>
<script language="JavaScript" type="text/javascript">
<!--
var points=prompt("请输入学生成绩:",0);
if(points>=90){
alert("A");
}else if(points>=75){
alert("B");
}else if(points>=60){
alert("C");
}else if(points<60){
alert("D");
}
//-->
</script>


</body>
</html>




<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title> New Document </title>
<meta name="Generator" content="EditPlus">
<meta name="Author" content="">
<meta name="Keywords" content="">
<meta name="Description" content="">
</head>


<body>
<script language="JavaScript" type="text/javascript">
<!--
do{
var year=prompt("请输入要判断是否为闰年的年份:",0);
if(null==year)break; //如果单击了取消按钮则直接退出
year=parseInt(year); //可选:将year转换为数字类型
var check4=(0==year%4); //判断年份是否能被4整除
var check100=(0==year%100); //判断年份是否能被100整除
var check400=(0==year%400); //判断年份是否能被400整除
//给出判断结果
if(year!=0 && ((check4 && !check100) || check400))alert(year+"年是闰年。");
else if(year!=0)alert(year+"年不是闰年。");
}while(year!=0)
//-->
</script>


</body>
</html>


测试continue
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title> New Document </title>
<meta name="Generator" content="EditPlus">
<meta name="Author" content="">
<meta name="Keywords" content="">
<meta name="Description" content="">
</head>


<body>
<script language="JavaScript" type="text/javascript">
<!--
while(true){
var year=prompt("请输入要判断是否为闰年的年份:",0);
if(null==year)break; //如果单击了取消按钮则直接退出
if(!/[^0]\d+/.test(year)){
//通过正则表达式判断输入年份的合法性
alert("请输入合法的年份!");
continue;
}
year=parseInt(year); //可选:将year转换为数字类型
var check4=(0==year%4); //判断年份是否能被4整除
var check100=(0==year%100); //判断年份是否能被100整除
var check400=(0==year%400); //判断年份是否能被400整除
//给出判断结果
if( (check4 && !check100) || check400)alert(year+"年是闰年。");
else alert(year+"年不是闰年。");
}
//-->
</script>


</body>
</html>




For...In 声明用于遍历数组或者对象的属性(对数组或者对象的属性进行循环操作)。
实例
For...In 声明
如何使用 For...In 声明来遍历数组内的元素。
JavaScript For...In 声明
For...In 声明用于对数组或者对象的属性进行循环操作。
for ... in 循环中的代码每执行一次,就会对数组的元素或者对象的属性进行一次操作。
语法:
for (变量 in 对象)
{
    在此执行代码
}
“变量”用来指定变量,指定的变量可以是数组元素,也可以是对象的属性。
实例:
使用 for ... in 循环遍历数组。
<html>
<body>


<script type="text/javascript">
var x
var mycars = new Array()
mycars[0] = "Saab"
mycars[1] = "Volvo"
mycars[2] = "BMW"


for (x in mycars)
{
document.write(mycars[x] + "<br />")
}
</script>


</body>
</html>


break与continue
有两种特殊的语句可用在循环内部:break 和 continue。
Break
break 命令可以终止循环的运行,然后继续执行循环之后的代码(如果循环之后有代码的话)。
实例:
<html>
<body>
<script type="text/javascript">
var i=0
for (i=0;i<=10;i++)
{
if (i==3){break}
document.write("The number is " + i)
document.write("<br />")
}
</script>
</body>
</html>
结果:
The number is 0
The number is 1
The number is 2
Continue
continue 命令会终止当前的循环,然后从下一个值继续运行。
实例:
<html>
<body>
<script type="text/javascript">
var i=0
for (i=0;i<=10;i++)
{
if (i==3){continue}
document.write("The number is " + i)
document.write("<br />")
}
</script>
</body>
</html>
结果:
The number is 0
The number is 1
The number is 2
The number is 4
The number is 5
The number is 6
The number is 7
The number is 8
The number is 9
The number is 10


JavaScript Try...Catch 语句
try...catch 的作用是测试代码中的错误。
JavaScript - 捕获错误
当我们在网上冲浪时,总会看到带有 runtime 错误的 Javascript 警告框,同时会询问我们“是否进行 debug?”。像这样的错误信息或许对开发人员有用,对用户则未必。当错误发生时,他们往往会选择离开这个站点。
本节向你讲解如何捕获和处理 Javascript 的错误消息,这样就可以为受众提供更多的便利。
有两种在网页中捕获错误的方法:
使用 try...catch 语句。(在 IE5+、Mozilla 1.0、和 Netscape 6 中可用) 
使用 onerror 事件。这是用于捕获错误的老式方法。(Netscape 3 以后的版本可用)
注意:chrome、opera 和 safari 浏览器不支持 onerror 事件。
Try...Catch 语句
try...catch 可以测试代码中的错误。try 部分包含需要运行的代码,而 catch 部分包含错误发生时运行的代码。
语法:
try
{
   //在此运行代码
}
catch(err)
{
   //在此处理错误
}
注意:try...catch 使用小写字母。大写字母会出错。
实例 1
下面的例子原本用在用户点击按钮时显示 "Welcome guest!" 这个消息。不过 message() 函数中的 alert() 被误写为 adddlert()。这时错误发生了:
<html>
<head>
<script type="text/javascript">
function message()
{
adddlert("Welcome guest!")
}
</script>
</head>


<body>
<input type="button" value="View message" οnclick="message()" />
</body>


</html>
我们可以添加 try...catch 语句,这样当错误发生时可以采取更适当的措施。
下面的例子用 try...catch 语句重新修改了脚本。由于误写了 alert(),所以错误发生了。不过这一次,catch 部分捕获到了错误,并用一段准备好的代码来处理这个错误。这段代码会显示一个自定义的出错信息来告知用户所发生的事情。
<html>
<head>
<script type="text/javascript">
var txt=""
function message()
{
try
  {
  adddlert("Welcome guest!")
  }
catch(err)
  {
  txt="此页面存在一个错误。\n\n"
  txt+="错误描述: " + err.description + "\n\n"
  txt+="点击OK继续。\n\n"
  alert(txt)
  }
}
</script>
</head>


<body>
<input type="button" value="View message" οnclick="message()" />
</body>


</html>
 
实例 2
下一个例子会显示一个确认框,让用户来选择在发生错误时点击确定按钮来继续浏览网页,还是点击取消按钮来回到首页。如果 confirm 方法的返回值为 false,代码会把用户重定向到其他的页面。如果 confirm 方法的返回值为 true,那么代码什么也不会做。
<html>
<head>
<script type="text/javascript">
var txt=""
function message()
{
try
  {
  adddlert("Welcome guest!")
  }
catch(err)
  {
  txt="There was an error on this page.\n\n"
  txt+="Click OK to continue viewing this page,\n"
  txt+="or Cancel to return to the home page.\n\n"
  if(!confirm(txt))
    {
    document.location.href="http://www.W3CSchool.cn/"
    }
  }
}
</script>
</head>


<body>
<input type="button" value="View message" οnclick="message()" />
</body>


</html>
 
onerror 事件
我们马上会讲解 onerror 事件。但首先您需要学习如何使用 throw 语句来创建异常。throw 语句可以与 try...catch 语句一起使用。


JavaScript Throw 声明
Previous Page
Next Page
throw 声明的作用是创建 exception(异常或错误)。
实例
throw 声明
如何使用 throw 声明。
Throw 声明
throw 声明的作用是创建 exception(异常)。你可以把这个声明与 try...catch 声明配合使用,以达到控制程序流并产生精确错误消息的目的。
语法:
throw(exception)
exception 可以是字符串、整数、逻辑值或者对象。
注意:使用小写字母编写 throw。使用大写字母会出错!
实例 1
下面的实例的作用是测定变量 x 的值。如果 x 的值大于 10 或者小于 0,错误就会被抛出 (throw)。这个错误被 catch 的参数捕获后,就会显示出自定义的出错信息。
<html>
<body>
<script type="text/javascript">
var x=prompt("Enter a number between 0 and 10:","")
try

if(x>10) 
throw "Err1"
else if(x<0)
throw "Err2"

catch(er)
{
if(er=="Err1") 
alert("Error! The value is too high")
if(er == "Err2") 
alert("Error! The value is too low") 
}
</script>
</body>
</html>


JavaScript onerror 事件
使用 onerror 事件是一种老式的标准的在网页中捕获 Javascript 错误的方法。
实例
onerror 事件
如何使用 onerror 事件捕获网页中的错误。(chrome、opera、safari 浏览器不支持)
onerror 事件
我们刚讲过如何使用 try...catch 声明来捕获网页中的错误。现在,我们继续讲解如何使用 onerror 事件来达到相同的目的。
只要页面中出现脚本错误,就会产生 onerror 事件。
如果需要利用 onerror 事件,就必须创建一个处理错误的函数。你可以把这个函数叫作 onerror 事件处理器 (onerror event handler)。这个事件处理器使用三个参数来调用:msg(错误消息)、url(发生错误的页面的 url)、line(发生错误的代码行)。
语法:
οnerrοr=handleErrfunction handleErr(msg,url,l)
{
//Handle the error here
return true or false
}
浏览器是否显示标准的错误消息,取决于 onerror 的返回值。如果返回值为 false,则在控制台 (JavaScript console) 中显示错误消息。反之则不会。
实例:
下面的例子展示如何使用 onerror 事件来捕获错误:
<html>
<head>
<script type="text/javascript">
οnerrοr=handleErr
var txt=""


function handleErr(msg,url,l)
{
txt="There was an error on this page.\n\n"
txt+="Error: " + msg + "\n"
txt+="URL: " + url + "\n"
txt+="Line: " + l + "\n\n"
txt+="Click OK to continue.\n\n"
alert(txt)
return true
}


function message()
{
adddlert("Welcome guest!")
}
</script>
</head>


<body>
<input type="button" value="View message" οnclick="message()" />
</body>


</html>


javascript消息框
警告框
警告框经常用于确保用户可以得到某些信息。
当警告框出现后,用户需要点击确定按钮才能继续进行操作。
语法:
alert("文本")
确认框
确认框用于使用户可以验证或者接受某些信息。
当确认框出现后,用户需要点击确定或者取消按钮才能继续进行操作。
如果用户点击确认,那么返回值为 true。如果用户点击取消,那么返回值为 false。
语法:
confirm("文本")

提示框+

提示框经常用于提示用户在进入页面前输入某个值。
当提示框出现后,用户需要输入某个值,然后点击确认或取消按钮才能继续操纵。
如果用户点击确认,那么返回值为输入的值。如果用户点击取消,那么返回值为 null。
语法:
prompt("文本","默认值")

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值