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 }