函数参数(arguments)
arguments并不是一个数组,只是与数组相似。arguments除了拥有length属性,数组的所有属性和方法都不具备。用arguments来实现一个累加的函数。function sum(){
var total = 0;
for(var i=0; i
total += arguments[i];
}
return total;
}
alert("sum: " + sum(1, 3, 2, 4));
函数返回值(return)
当一个函数被调用,通常会从函数的{开始执行到}结束。如果想提前结束该函数的执行可以使用return语句,此时,return语句后面的所有语句将永远不会执行。如:function test(){
alert("first");
return;
alert("second"); // 该语句永远被不会执行
}
test();
// 一个函数总是会返回值,如果没有使用return返回值,默认返回undefined。如:
function test(){
alert("first");
}
alert(test()); // 输出:undefined
// 如果函数前使用new方式调用,且返回值不是一个对象,则返回this(新对象)。如:
function test(){
alert("first");
}
var t = new test();
alert(typeof t); // 输出:‘object'
alert(t instanceof test); // 输出:true
异常(exception)
异常是干扰程序正常流程的非正常事故(可能人为有意的)。当检查出这样的事故,应当抛出异常。如:function add(a, b){ // 定义一个加法函数
// 如果传递的参数不是数字类型,则抛出一个异常信息
if(typeof a != 'number' || typeof b != 'number'){
throw {
'name' : "typeError", // 属性是自定义的,名字可以任意取
'message': "add方法必须使用数字作为参数"
};
}
return a + b;
}
(function(){
// 捕获add方法可能产生的异常
try{
add(10, "");
} catch(e){
// 一个try语句只有一个catch语句,如果要处理多个异常,则通过异常的name属性来区别
// 判断异常的类型
if(e.name === "typeError"){
alert(e.message);
}
}
})();