Javascript中的幾種函數

(1)普通函數:這種函數是咱們平常使用中用的最多的,用function關鍵字定義的函數.這也是符合多種語言定義的。javascript

function foo(){
    // code
}

(2)箭頭函數:用=>運算符定義的函數.這個是ES6的語法。java

const foo = () => {
// code
}異步

(3)方法:在class中定義的函數。async

class C {
    foo(){
        //code
    }
}

(4)生成器函數:用function*定義的函數。函數

function* foo(){
    // code
}

(5)類:用class定義的類,實際上也是函數。spa

class Foo {
    constructor(){
        //code
    }
}

(6)異步普通函數rest

async function foo(){
    // code
}

(7)異步箭頭函數code

const foo = async () => {
    // code
}

(8)異步生成器函數對象

async function foo*(){
    // code
}

這裏主要介紹下箭頭函數:blog

(1)若是箭頭函數不須要參數或須要多個參數,能夠使用圓括號表明參數部分。

var f=()=>5;

//等同於

var f=function(){return 5 };

 

var sum=(num1,num2)=>num1+num2;

//等同於

var sum=function(num1,num2)

{

 return num1+num2;

}

 

若是箭頭函數的代碼塊部分多餘一條語句,就要使用大括號將其括起來,並使用return語句返回

var sum=(num1,num2)=>
{ let c=num1-45
 return c+num2;
}
(2) 因爲大括號被解釋爲代碼塊,因此若是箭頭函數直接返回一個對象,必須在對象外面加上括號。
var getObject=id=>({id:id,name:'test'});
console.log(getObject(4))
輸出:{id: 4, name: "test"}
 
箭頭函數能夠與變量解構結合使用
const full=({first,last})=>first+' '+last;
var person={'first':'22','last':'11'}
console.log(full(person))
 
等同於
var person={'first':'22','last':'11'}
function full(person)
{
  return person.first+' '+person.last
}
console.log(full(person))
(3) 箭頭函數的一個用處是簡化回調函數。
console.log([1,2,3].map(function(x)
{
return x*x;
}))
等同於
console.log([1,2,3].map(x=>x*x))
結果爲:[1, 4, 9]
 
 
var values=[3,2,6,8]
var result=values.sort(function(a,b)
{
return a-b;
})
console.log(values);
等同於
var result=values.sort((a,b)=>a-b)
console.log(values);
結果爲:[2, 3, 6, 8]
 
rest參數和箭頭函數結合的例子.
const numbers=(...numbes)=>numbes
console.log(numbers(1,2,3,4,5))
結果爲:[1,2,3,4,5]
 
 
const headandTail=(head,...tail)=>{return tail}
console.log(headandTail(1,2,3,4,5))
結果爲:[2,3,4,5]
相關文章
相關標籤/搜索