一篇关于“JavaScript语言入门”的文章涵盖了JavaScript语言中许多最基础的内容,从创建脚本标签到使用注释、把JavaScript文件包含到HTML文档中、定义变量、使用运算符、定义数组、使用条件语句、定义函数和使用循环等。本文从上一篇文章结束的地方开始,解释其他的一些基本的JavaScript语言概念,继续为初学者提供对语言的基础理解。本文提及的基础内容能够让你更好地理解所使用的库,知道如何就究竟要不要使用库做出决定,甚至有可能会给你带来一些编写自己的库的勇气。文章自始至终都在提供例子来说明语言是如何实现其各个方面的。
事件
事件(event)是使用JavaScript语言来把任何类型的交互加入到网页中的触媒,每个HTML元素都有你可用来触发JavaScript代码的相关事件。例如,input域就有很多可能的事件:你可以关联focus(焦点)事件,在有人点击或是跳转到input域上时就触发JavaScript代码,或是你可以关联一个blur(失焦)事件,当有人点击一个已获得焦点的input域的外部或是从该域跳转出去时触发JavaScript代码。在关联事件之后,就会出现无限的可能性。例如,blur事件会触发检查input域中的数据是否有效的JavaScript代码,如果无效的话,就有一条内联的消息被显示出来,作为一种自动的反馈。下面的代码提供了一个例子,说明focus和blur事件是如何用来在input域中显示缺省的文本的。
<input type="text" value="Enter your email address"
onfocus="this.value = '';" onblur="if(this.value == '')
this.value = 'Enter your email address';"/>
这里的input域带有一个缺省的值,因此,当在网页浏览器中查看该域时,这一input域显示文本“Enter your email address”。在有人点击或是跳转到该域时,为了让缺省值消失,focus事件被用来把域的值设置成一个空串。如果有人点击或是跳转到input域的外部的话,blur事件就被用来再次显示缺省文本,如果你没有这样做的话,那么留下的就是他们自己输入的文本了。
每个HTML元素都有与自身相关的事件。表1列出了一些最常见的HTML元素及其相关事件。
表1. 常见元素及其相关事件
元素事件
body onload、onunload
input onfocus、onblur、onchange、onkeydown、onkeypress、onkeyup
form onsubmit
img onmouseover、onmouseout、onclick
try...catch和throw
try...catch语句提供了一种检测代码错误的方式,这样就无需把错误发送给浏览器或是给出一种自定义的错误。如果某个JavaScript错误没有被包含在一个try...catch语句的内部的话,则任何后继的JavaScript代码就都不能被执行了,而浏览器则不得不使用自己的方式来处理和显示该错误。这一语句的try部分被用来执行JavaScript代码,catch部分则处理可能会在try部分出现的错误。在执行一些在某些浏览器中可能不能正常工作的代码时,你可以使用这一语句构造。如果这种代码放在try...catch语句的内部的话,那么在有错误返回时,它只是被忽略不执行,catch部分则会处理该错误。这一错误有可能确实给出一个错误信息,或是什么也不做,这取决于用户是否需要知道错误的出现。
使用try...catch来处理错误
该语句的catch部分还可以包含一个缺省的错误对象参数,这一错误对象返回与在语句的try部分出现的错误相关的信息。错误对象有两个属性:message和line。message提供的文本描述了发生的确切错误;line提供了错误出现的确切代码行数。清单1给出了一个try...catch语句例子,该例子使用一个错误对象来通知错误消息和行数。当然,这种信息只有在调试状态下才是比较有用的,但是在不依赖浏览器的处理的情况下,而又打算给用户提供关于某个已发生错误的反馈时,这些属性就变得很有用了。
清单1. 在try...catch语句中使用错误对象来调式错误
复制代码 代码如下:
try
{
// 试图在这里执行产生错误的代码
}
catch(err)
{
var txt = err.message +'\n';
txt += err.line;
alert(txt);
}
使用throw语句来创建错误异常
try...catch构造提供了非常棒的错误处理功能,不过你还可以采取更进一步的做法,那就是使用throw语句。throw语句允许你基于某些条件来创建错误异常,这种方式提供了最佳的机会来创建更加用户友好的错误信息,这些错误信息准确且是用通俗易懂的语言来描述的。清单2给出了一个简单的例子,说明了如何使用throw语句来在try...catch语句的try部分创建一个基于条件的错误异常。
清单2. 使用throw语句来创建错误异常
复制代码 代码如下: