用alert()和document.write()方法监视变量值
alert()在弹出对话框显示变量值得同时,会停止代码的继续运行,直到用户单击"确定"按钮,而document.write()则在输出值之后继续运行代码。
for(var i=0;i<aColors.length;i++)
if(aColors[i].indexOf(oInputField.value)==0)
alert(aColor[i]);
aResult.push(aColors[i]);
为了很好地检测加入到数组aResult里的值,往往在if语句中适当地嵌入alert()语句,
如果加入的值很多,则可以选用document.write()方法,避免反复单击"确定"按钮
for(var i=0;i<aColors.length;i++)
if(aColors[i].indexOf(oInputField.value)==0)
document.write(aColors[i]);
aResult.push(aColors[i]);
用onerror事件找到错误
理解onerror事件
<html>
<head>
<title>onerror</title>
<script language="javascript">
window.onerror = function(){
alert("出错啦!");
}
</script>
</head>
<body onload="nonExistent()">
</body>
</html>
用onerror事件找到错误
<html>
<head>
<title>onerror</title>
<script language="javascript">
window.onerror = function(){
alert("出错啦!");
return true; //屏蔽系统事件
}
</script>
</head>
<body onload="nonExistent()">
</body>
</html>
用onerror事件的参数确认错误的性质
<html>
<head>
<title>onerror</title>
<script language="javascript">
window.onerror = function(sMessage, sUrl, sLine){
alert("出错啦:\n" + sMessage + "\nUrl: " + sUrl + "\n行号: " + sLine);
return true; //屏蔽系统事件
}
</script>
</head>
<body onload="nonExistent()">
</body>
</html>
用try...catch语句找到错误
该语句首先运行try里面的代码,如果发现错误则跳转到运行catch()里面的代码,如果有finally,则无论是否出错最后都运行其中的代码。
try{
//代码
}catch([exception]){
//如果try中代码有错,则运行
}[finally{
//最后运行,无论是否出错
}]
用try...catch语句找到错误
实例1:
<html>
<head>
<title>try...catch</title>
<script language="javascript">
try{
alert("this is an example");
alert(fresheggs);
} catch(exception){
var sError = "";
for(var i in exception)
sError += i + ":" + exception[i] + "\n";
alert(sError);
}
</script>
</head>
<body>
</body>
</html>
实例2:
<script type="text/javascript">
//使用异常
//(并不是全部代码都放到try里边, 而是有可能产生异常的代码才放入)
var week = "Monday";
var date = "2015/6/7";
try{
console.log(week);
console.log(date);
console.log(weather);//ReferenceError: weather is not defined
var arr = new 20(); //TypeError: 20 is not a constructor
//var tom = new eval(); //TypeError: eval is not a constructor
console.log(111);
console.log(222);
}catch(ex){
//ex是一个对象,用于获得具体错误信息
//ex.message 获得具体错误信息
console.log(ex.message);//weather is not defined
}finally{
//无论是否有异常错误,此处代码都给执行
console.log('we are studying javascript');
}
</script>
throw 声明的作用是创建 exception(异常或错误)。
throw(exception)
exception 可以是字符串、整数、逻辑值或者对象。
注意:使用小写字母编写 throw。使用大写字母会出错!
下面的实例的作用是测定变量 x 的值。如果 x 的值大于 10 或者小于 0,错误就会被抛出 (throw)。
这个错误被 catch 的参数捕获后,就会显示出自定义的出错信息。
<html>
<body>
<script type="text/javascript">
var x=prompt("Enter a number between 0 and 10:","")
try{
if(x>10)
throw "Err1"
else if(x<0)
throw "Err2"
} catch(er){
if(er=="Err1")
alert("Error! The value is too high")
if(er == "Err2")
alert("Error! The value is too low")
}
</script>
</body>
</html>
使用调试器
Firefox错误控制器调试
开发者-调试器
用venkman调试
venkman是一款针对Mozilla的脚本调试器
下载地址:https://addons.mozilla.org/zh-CN/seamonkey/addon/javascript-debugger/versions/
注意:最新版已经安装venkman调试器
F12:启动调试器
用Microsoft Script Debugger调试
安装Microsoft Script Debugger插件
Internet选项-高级-禁用脚本测试(Internet Explorer和其他)
下载地址:http://www.microsoft.com/zh-cn/download/details.aspx?id=23992
F12:启动调试器
Chome浏览器
更多工具-JavaScript控制台