• Javascript中的几种函数


    (1)普通函数:这种函数是我们日常使用中用的最多的,用function关键字定义的函数.这也是符合多种语言定义的。

    function foo(){
        // code
    }
    

    (2)箭头函数:用=>运算符定义的函数.这个是ES6的语法。

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

    (3)方法:在class中定义的函数。

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

    (4)生成器函数:用function*定义的函数。

    function* foo(){
        // code
    }
    

    (5)类:用class定义的类,实际上也是函数。

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

    (6)异步普通函数

    async function foo(){
        // code
    }
    

    (7)异步箭头函数

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

    (8)异步生成器函数

    async function foo*(){
        // code
    }

    这里主要介绍下箭头函数:

    (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]
     
  • 相关阅读:
    lintcode 中等题:Evaluate Reverse Polish notation逆波兰表达式求值
    lintcode 中等题:unique Binary Search Tree 不同的二叉查找树
    lintcode 中等题:Submatrix sum is 0 和为零的子矩阵
    lintcode:递归打印数字
    lintcode :Segmemt Tree Build II
    lintcode 中等题:find the missing number 寻找缺失的数
    lintcode 中等题: Implement Trie
    lintcode 中等题:Letter Combinations of a Phone Number 电话号码的字母组合
    lintcode 中等题:Palindrome Linked List 回文链表
    [LeetCode] Merge Sorted Array
  • 原文地址:https://www.cnblogs.com/cby-love/p/11296220.html
Copyright © 2020-2023  润新知