【各大厂常见面试题2】--函数

560 阅读1分钟

目录

一、纯函数

定义:相同的输入,永远会得到相同的输出,而且没有任何可观察的副作用。

二、非函数

定义:数传根据入参的不同,返回不一样的结果值。

三、函数式编程

定义:是一种"编程范式"(programming paradigm),是将计算过程抽象成纯数学函数求值。
也就是如何编写程序的方法论。

特点:

开发速度快,代码简洁
接近方程函数,通俗易懂便于组织代码
返回的结果只与入参相关
便于代码结构管理便于并发编程

四、高阶函数

  • 定义:接收函数作为另一个函数的参数且以函数返回作为输出的函数称为高阶函数。

    function add(x, y, f) {  
         return f(x) + f(y);
    }
    

五、 闭包函数

定义:有权访问另一个函数作用域内变量的函数都是闭包

var fn = (arg)=>{
    let outer = 'outer';
    let innerFn = () =>{
        console.log(outer)
        console.log(arg)
    }
    return innerFn
}
var testFn= fn(5)
testFn()  //输出:outer 5

六、柯里函数

定义:把接受多个参数的函数变换成接受一个单一参数(最初函数的第一个参数)的函数,
并且返回新函数接受余下的参数。

// 普通的add函数 
function add(a, b) {  
       return a + b 
} 
// 柯里化后 
function curryingAdd(a) {      
         return function (b) {                  
            return a + b           
         } 
}

七、可重入函数

定义:表示一个函数在同时多次调用,可重复进入,函数每次调用除了使用自身栈
上的变量以外不依赖于任何环境,且可以随意被中断。

未经同意,不予转载
读后有收获可以微信请作者喝咖啡,有疑问请加微信讨论