2019--3.10学习笔记

实现一个数值加法函数,返回两个数字的和。要求能够进行参数验证,若参数不是数字或者为空则抛出异常

<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>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值