throw&arguments&rest&return

函數基礎

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




函數錯誤反饋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表明了傳入的全部值,並造成數組,能夠經過數組形式進行輸出。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




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的時候會出現如下問題ip

return 
    a;

/* 轉換成
* return;
* a;
*/

// 正確寫法
return {
    a
}
本站公眾號
   歡迎關注本站公眾號,獲取更多信息