实现一个数值加法函数,返回两个数字的和。要求能够进行参数验证,若参数不是数字或者为空则抛出异常
<html>
<head>
</head>
<body>
<script language="javascript"> //脚本程序开始开始
function Sum(arg1, arg2) //数值加法函数
{
var sarg1 = new String(arg1); //将传入的参数转化为字符串以便进行参数检查
var sarg2 = new String(arg2); //将参数2转化为字符类型
if ((sarg1=="") || (sarg2=="")) //确保参数不为空
{
var e0 = new Error(); //当有参数为空时抛出异常
e0.Serial = 1000001; //错误编号
if(sarg1=="") //根据为空的参数正确填写错误信息
{
e0.message = "Sum函数参数非法:第1个参数为空!"; //错误描述信息
}
else
{
e0.message = "Sum函数参数非法:第2个参数为空!";
}
throw e0; //抛出错误信息
}
for(i=0;i<sarg1.length;i++) //参数合法性检查
{
for(j=0;j<10;j++) //检查所有字符
{
if(sarg1.charAt(i)==j) //若不是数字则抛出错误信息
{
break; //跳出循环
}
else
{
if(j==9) //当已经查询到数字9时
{
var e1 =new Error(); //错误信息对象
e1.Serial = 1000001; //错误编号
e1.message = "Sum函数参数:" + sarg1 + "是非法数字!"; //错误描述信息
throw e1;
}
}
}
}
for(k=0;k<sarg2.length;k++) //检查参数2是否是数字
{
for(l=0;l<10;l++) //从0~9逐一比较
{
if(sarg2.charAt(k)==l)
{
break; //跳出循环
}
else
{
if(l==9) //只有包含非数字则抛出错误信息
{
var e2 =new Error(); //创建错误对象
e2.Serial = 1000001; //异常编号
e2.message = "Sum函数参数:" + sarg2 + "是非法数字!"; //异常描述信息
throw e2; //抛出
}
}
}
}
return Number(arg1) + Number(arg2); //参数都正确返回两个值的和
}
function Button1_onclick() //“计算”按钮的单击事件处理程序
{
try //提取用户的输入数据
{
var Text1 = document.getElementById("Text1");
var Text2 = document.getElementById("Text2");
var Text3 = document.getElementById("Text3");
var sum = Sum(Text1.value, Text2.value); //调用函数进行计算
Text3.value = sum; //输出计算结果
}
catch(e) //有错误发生则输出错误信息
{
alert(e.message); //输出异常中的信息
if(e.serial == 1000001) //如果是1000001号错误
{
alert(e.message); //输出异常信息
e = null; //断开对错误对象的引用
}
}
} //脚本程序结束
</script>
<input id="Text1" type="text" style="width:84px" maxlength="20">
+ <input id="Text2" type="text" style="width:75px" maxlength="20">
= <input id="Text3" type="text" style="width:69px">
<input id="Button1" type="button" value="计算" onclick="return Button1_onclick()">
</body>
</html>
编写一个排序函数,实现数字排序。排序方法由客户函数实现,函数参数为2个。揭示了回调函数的使用方法。
<script language="javascript">
function SortNumber(obj, func)
{
if(!(obj instanceof Array) || !(func instanceof Function))
{
var e = new Error();
e.number = 100000;
e.message = "参数无效";
throw e;
}
for (n in obj)
{
for (m in obj)
{
if( func(obj[n], obj[m]) )
{
var tmp = obj[n];
obj[n] = obj[m];
obj[m] = tmp;
}
}
}
return obj;
}
function greaterThan(arg1, arg2)
{
return arg1 > arg2 ;
}
try
{
var numAry = new Array( 5,8,6,32,1,45,7,25 );
document.write("<li>排序前:" + numAry);
SortNumber(numAry, greaterThan)
document.write("<li>排序后:" + numAry);
}
catch(e)
{
alert(e.number + ":" + e.message);
}
</script>
</body>
</html>
实现一个简单的在线编辑和运行JavaScript代码的程序。
<html>
<head>
<script language="javascript">
function Button1_onclick()
{
try
{
var cmdWin = document.getElementById("TextArea1");
var str = "try{" + cmdWin.value + "}catch(e){alert('你的代码有错:' + e.description);}";
var cmd = new Function(str);
cmd();
}
catch(e)
{
alert("错误" + e.description);
}
}
</script>
</head>
<body>
<div align="center" style="border:#000000 1px solid height:336px;background-color:#ffffff;width:618px">
<textarea id="TextArea1" style="width:612px;height:300px"></textarea>
<input id="Button2" type="button" value="执行程序" onclick="return Button1_onclick()" style="width:145px">
</div>
</body>
</html>