JavaScript的函数:
函数的定义:函数是由关键字function、函数名加一组参数已经置于大括号中需要执行的一段语句定义的。语法:
<script language="javascript">
function functionName(parameters){
some statements;
}
</script>
注:函数的定义语句通常被放在HTML文件的<HEAD>段中,而函数的调用语句通常被放在<BODY>段中。
在事件响应中调用函数:当用户单击某个按钮或某个复选框时都将触发事件,通过编写程序对事件做出反应的行为称为相应事件。
<script language="javascript">
function test(){
alert("test") }
</script>
</head>
<body>
<form action="" methon="post" name="form1">
<input type="button" value="提交" onClick="test();">
</form>
</body>
通过链接调用函数:在<a>标签中的href标记中使用javascript:关键字调用函数。
<script language="javascript">
function test(){
alert("test");
</script>
</head>
<body>
<a href="javascript:test();">test</a>
</body>
arguments对象:在JavaScript函数代码中,可以使用arguments特殊对象,可以使用arguments[0]访问函数的第一个参数值,使用arguments[1]访问函数第二个参数值,...同时还可以使用arguments.length获取函数的参数个数:
function testArgs(){
for(var i=0;i<arguments.length;i++){
document.write("函数参数的个数为:"+arguments.length+"运行结果为:"+arguments[i]+"。")}
}
注:
arguments[0]即为第一个参数,不是函数的名称。
函数定义的时候形式参数可以省略。
JavaScript中的内置函数
eval():求字符串中表达式的值。
isFinite():判断一个数值是否为无穷大。
isNaN():判断一个数值是否为NaN。
parseInt():将首位为数字的字符串转化为整型,如果字符串不是以数字开头,则返回NaN。
parseFloat():将首位为数字的字符串转化为浮点型数字,如果不是以数字开头,则返回NaN。
encodeURI():将字符串转化为有效的URL(URI和URL都可以表示网络资源地址,URI比URL的表示范围更加广泛)。
encodeURIComponent():将字符串转化为有效的URL组件。
decodeURI():对encodeURI()编码的文本进行解码。
DecodeURIComponent():对encodeURIComponent()编码的文本进行解码。
JavaScript的异常处理:
注:一个程序通常有3种类型的异常,分别为“语法异常”、“运行时的异常”和“逻辑异常”。
IE浏览器内建的错误报告:IE浏览器自能发现程序中的语法错误,对于程序中的逻辑错误还不能发现。【"工具"/"Internet选项"-->"浏览"选择"显示每个脚本错误的通知"】
处理异常:JavaScript语言处理异常通常有两种方式。一种方式是使用onerror事件,该事件可以在window对象或图像对象上触发,而另一种方式是使用try...catch...finally模型。
1) 触发onerror事件处理异常:onerror事件处理异常提供了3中信息来确定发生异常的详细信息:
1.异常信息:获取异常信息(ms)
2.URL:获取发生异常的文件的绝对路径。(Url)
3.行号:给定发生异常文件的行号。(Line)
window.onerror:触发onerror事件
<script language="javascript">
window.onerror=function(){
alert("您调用的函数不存在\n"+ms+"\n"+Url+"\n"+Line+"\n");
return true;
}
</script>
注:如果在onerror事件处理函数中没有return true语句,在弹出错误提示对话框后,浏览器的错误报告也会显示出来。为了隐藏此错误报告,函数需要返回true.
document.images[0].onerror
<script language="javascript">
document.images[0].onerror=function(){
somestatements;
return true;
}
</script>
2)使用try...catch语句处理异常:
<script language="javascript">
try{
somestatements;
}
catch(exception e){
somestatements;
}finally{
somestatements;
}
</script>
try...catch...finally语句中catch通常捕捉到的对象为Error对象,Error类是所有用于抛出异常的雷德基类,JavaScript中用于抛出异常的类如下所示:
类 | 发生异常原因 |
EvalError | 错误发生在eval()函数中 |
RangeError | 数字的值超出JavaScript可表示的范围 |
ReferenceError | 使用了非法的引用 |
TypeError | 变量的类型错误 |
URIError | 在encodeURI()函数或decodeURI()函数中发生了错误 |
Error对象有以下两个特性:
1.name:表示异常类型的字符串。
2.message:实际的异常信息。
alert("实际的错误消息为:"+exception.message+"\n错误类型字符串为:"+exception.name);
在程序中使用throw语句可以有目的的抛出异常,throw一般可以在try语句中:
throw new TypeError("somestatements");
JavaScript语言调试技巧:
使用aler()语句进行调试。
使用write()语句进行调试,将所有的调试信息以列表的方式放置在页面中。
使用抛出自定义异常消息进行调试。