2020-8-15 JavaScript基础巩固(函数)

JavaScript

函数

定义

		function sum(a,b){
            return a+b
        }
        let sum = function(a,b){		//匿名函数
            return a+b
        }

递归函数

		function sum(n){
            if(n===1){
                return 1
            }
            return n+sum(n-1)
        }

斐波那契(Fibonacci)数列

		function fib(num){
            if(num<=1){
                return 1
            }
            return fib(num-1)+fib(num-2)
        }

argument 参数数组

		function log() {
            for (i = 0; i < arguments.length; i++) {
                console.log(arguments[i])
            }
        }
        log('abc', '123')		//abc
							  //123

函数变量

		function person() {
            let name = '123'

            function getName() {
                return name
            }
            return getName
        }
        var getName = person()
        console.log(getName)
        console.log(getName())

在这里插入图片描述

函数 柯里化

  1. 普通函数

    		function addThreeNum(a, b, c) {
                return a + b + c
            }
            console.log(addThreeNum(1, 2, 3))		//6
    
  2. 函数柯里化

		function addThreeNumCurry(a) {
            return function(b) {
                return function(c) {
                    return a + b + c
                }
            }
        }
        console.log(addThreeNumCurry(1)(2)(3))		//6

        let twoNum = addThreeNumCurry(1)(2)
        console.log(twoNum(4))		//7

函数柯里化的优点:可以固定前面的2位数

自执行函数

		var x=10
        (function(){
            var x=20
            console.log(x)		//20
        })()
        console.log(x)		10

优点:防止命名冲突

回调函数

		function request(cb){
            console.log('回调开始')
            cb("Success")
            console.log('回调结束')
        }
        function callback(result){
            console.log('执行回调')
            console.log('回调结果:'+result)
        }
        request(callback)

在这里插入图片描述

可以用箭头函数简化,但是不能复用

		request(result=>{
            console.log('执行回调')
            console.log('回调结果:'+result)
        })

是不能复用

		request(result=>{
            console.log('执行回调')
            console.log('回调结果:'+result)
        })
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值