在代码的运转过程中,过错是不行避免的,总的来说,过错发作于两种状况,一是程序内部的逻辑或许语法过错,二是运转环境或许用户输入中不行预知的数据形成的过错,关于前者,就称之为过错(error),能够经过高度程序来处置,然后一种则更多的称之为反常(exception),望文生义,即是超出惯例,没有按程序设计的志愿来输入数据,当然,反常还会有许多种类型.
所以说,反常并不等价于过错,相反,有时还会运用反常来处置一些疑问,javascript能够捕获一个反常并进行相应的处置,然后避免了浏览器向用户报错.
用户能够运用这种布局来处置可能发作反常的代码,假如发作反常,则由catch捕获并进行处置,其语法如下:
try{
//要履行的代码
}catch(e){
//处置反常的代码
}
finally{
//不管反常发作与否,都会履行的代码
}
在JavaScript诞生之前,一切的验证作业都在服务器端完结,这需求将数据发回到服务器增加了用户等待时间,用户体会较差,运用javascript在浏览器端进行验证则能够较好的处置这些疑问.这也是在实践的网站建设中最常用到的.
表单验证通常发作于用户单击提交按钮,数据被提交到服务器之前,这时假如用户输入的数据不全或无效,则撤销提交,一起提示用户从头输入,例如,函数validate()是用于查验表单的有效性的,回来值为true或许false,在程序中有两种办法来调用validate();
方法一:
方法二:
?
榜首种办法中,将validate()绑定到提交按钮的单击事情,假如回来false,则按钮会停止单击的作用,即表单不会提交;
第二种办法中,将validate()绑定到赞誉的提交事情,它发作在提交之前,假如回来false,则表单不会提交.
不管是window.setTimeout仍是window.setInterval.在运用函数名作为调用句柄时不能带参数,而在许多场合有必要要带参数,而在许多场合有必要要带参数,这就需求想办法处置,例如关于函数hello(_name),它用于对于用户名显现期待信息:
var username="jack";
//依据用户名显现期待信息
function hello(_name)
{
alert("hello,"+_name);
}
这时,假如妄图运用以下句子来使hello函数推迟3秒履行是不行行的.
window.setTimeout(hello(userName),3000);
这将使hello函数当即履行,并将回来值作为调用句柄传递给setTimeout函数,其完毕并不是程序需求的,而运用字符串方式能够到达想要的成果.
window.setTimeout("hello(username)",3000)
这儿的字符串是一段javascript代码,其间userName表明的是变量,但这种写法不行直观,并且有些场合有必要运用函数名.