例子:
function divide(iNum1,iNum2){
return iNum1.valueOf()/iNum2.valueOf();
}
这个函数是基于假设的,首先,它假设传入了两个参数:第二,它假设两个参数都是数字。但是如果调用时没有遵循这两条假设,比如divide("a");,最后就会出现类似undefined is not an object 或者iNum2 has no properties之类的错误。加入一些更确切的错误信息,问题就会变得更加清晰:
function divide(iNum1,iNum2){
if(arguments.length != 2){
throw new Error("divide() requires two arguments.");
}else if(typeof iNum1 != "number" || typeof iNum2 != "number"){
throw new Error("divide() requires two numbers for arguments.");
}
return iNum1.valueOf() / iNum2.valueOf();
}