前端面试题总结-自用(一)

最近开始总结之前的面试题,通过查阅借鉴了一些资料得出答案,整理的可能比较乱,但是自己看就还好


一、解释什么是闭包

1、定义: 闭包是指有权访问另一个函数作用域中的局部变量或方法的函数。声明在一个函数中的函数,就叫闭包。
2、特点:
(1)内部函数可以访问其所在的外部函数中声明的参数和变量
(2)变量不会被垃圾回收机制回收
(3)可避免使用全局变量,防止全局变量污染
(4)容易造成内存泄漏
函数作为返回值或者作为参数传递的时候都可以使用闭包

二、写出fn函数使得fn(1)(2)(3)=6,fn(1)(2)(3)(4)=10

此题考的是函数柯里化,柯里化就是一种将使用多个参数的一个函数转换成一系列使用一个参数的函数的技术。需要依赖参数以及递归,通过拆分参数的方式,来调用一个多参数的函数方法,以达到减少代码冗余,增加可读性的目的。以下是我给出的答案:

function fn(x) {
   
	var sum = 0;
    sum = sum + x;
    return function fn2(y) {
   
    	if (arguments.length === 0) {
   
        	return sum
        } else {
   
            sum = sum + y;
            return fn2;
        }
    }
}
console.log
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值