throw&arguments&rest&return

函数基础

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
}
夹具
原文地址:https://www.cnblogs.com/jilaokang/p/8645603.html