function abs(x) { if (x >= 0) { return x; } else { return -x; } }
当函数遇到return时候,函数执行完毕,abs(value)为返回值,为方便使用返回值,推荐如下写法
若是没有return
则在最末尾返回return undefined;
javascript
var abs = function (x) { if (x >= 0) { return x; } else { return -x; } };
所得的abs则为该函数的返回值,注意第二种写法末尾要加;
表示赋值结束java
// 错误条件 if (typeof x !== 'number') { // 抛出内容 throw 'Not a number'; }
经过throw
将函数错误抛出,函数执行完毕数组
咱们知道当传入参数时候只有对应索引值可以被执行函数
function foo(x) { console.log(x); } foo(10); // 10 foo(10,20) // 10 function foo(x) { for (var i of arguments) { console.log('arg ' + i ); } } foo(10,20,30) /* * arg 10 * arg 20 * arg 30 */
arguments
表明了传入的全部值,并造成数组,能够经过数组形式进行输出。rest
abs(5,6,8,7,9) /* * 传入函数中的值造成数组 * arguments = [5,6,7,9] */
经常使用于:传入一组必选和可选值的时候,进行数据替换code
// 如abd为必选参数,d为可选参数 funtion abs(a,b,c,d){ if(arguments.lenth === 3){ d = c; c = null; } ... } abs(10,20,30,40) //abc abs(10,20,40) // abd
当一个函数被传入多个参数而只须要其中一部分的时候,咱们一般能够在传参时用...
将多余的部分截取出来保留。索引
function foo(a,b,...rest){ console.log(a,b); console.log(rest); } foo(10,20,30,40,50,60); // 10 20 // (4) [30,40,50] foo(10) // 10 undefined // []
javascript在渲染时候会将;
未补全的自动补全,当咱们写return的时候会出现如下问题ip
return a; /* 转换成 * return; * a; */ // 正确写法 return { a }