函数基础
function abs(x) {
if (x >= 0) {
return x;
} else {
return -x;
}
}
当函数遇到return时候,函数执行完毕,abs(value)为返回值,为方便使用返回值,推荐以下写法
如果没有return
则在最末尾返回return undefined;
var abs = function (x) {
if (x >= 0) {
return x;
} else {
return -x;
}
};
所得的abs则为该函数的返回值,注意第二种写法末尾要加;
表示赋值结束
函数错误反馈throw
// 错误条件
if (typeof x !== 'number') {
// 抛出内容
throw 'Not a number';
}
通过throw
将函数错误抛出,函数执行完毕
arguments
我们知道当传入参数时候只有对应索引值能够被执行
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
代表了传入的所有值,并形成数组,可以通过数组形式进行输出。
abs(5,6,8,7,9)
/*
* 传入函数中的值形成数组
* arguments = [5,6,7,9]
*/
常用于:传入一组必选和可选值的时候,进行数据替换
// 如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
rest写法
当一个函数被传入多个参数而只需要其中一部分的时候,我们通常可以在传参时用...
将多余的部分截取出来保留。
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
// []
return
javascript在渲染时候会将;
未补全的自动补全,当我们写return的时候会出现以下问题
return
a;
/* 转换成
* return;
* a;
*/
// 正确写法
return {
a
}