美文网首页
函数全解

函数全解

作者: 韩宝亿 | 来源:发表于2020-01-10 15:27 被阅读0次

1.函数是什么?

子程序(routine):一个或多个语句组成,完成特定任务,相对独立。分为【函数】、【过程】、【方法】

1.1函数

Function,有返回值

1.2过程

Procedure,无返回值

1.3方法

Methods,类或对象中

2.函数的返回值由什么决定?

    影响因素:

2.1调用时输入的参数params

2.2定义时的环境env

    举例:

另一个例子:

这个例子说a是定义时的a,不是执行时的a

3.闭包

    如果在函数里面可以访问外面的变量,那么:

     【这个函数】+【这些变量】=【闭包】

闭包+时间 = 很容易令人困惑

一个常见的考题:

    请问下面打印出什么

答案:6个6,因为六个函数公用一个i

改成符合预期的结果:

使用立即执行函数

或者用现代浏览器的简单方法

答案:0 1 2 3 4 5,每个函数配一个i即可

结论:

   闭包的特点

       1.能让一个函数维持住一个变量

        2.但并不能维持这个变量的值

        3.尤其是变量的值会变化的时候

    对象是穷人的闭包

        1.对象也可以来维持住一个变量

        2.如果一门语言不支持闭包,你可以用对象代理

    闭包是穷人的对象

       如果一门语言不支持对象,你可以用闭包代理

4.this真变态

前置知识:

    如何声明一个函数?

4.1箭头函数不支持this

箭头函数如何处理a,就如何处理this

即:

箭头函数把this当作外部的变量,仅此而已。但是非箭头函数的this有很多特殊处理

箭头函数不支持this指的就是:箭头函数对this与其他变量一视同仁,不会特殊对待

4.2非箭头函数的this

回顾上文函数的返回值影响因素有两个:1、调用时输入的参数;2、定义时的环境。

有人说this是上下文,其实this就是一个隐式参数而已,箭头函数把this当作环境,普通函数把this当作参数。

this的确定

5.递归

调用栈与弹栈

调用栈用来记忆【回到哪】。如果需要记忆的过多,就会爆栈!

6.柯里化

    柯里化(Currying),让所有函数只接受一个参数。

6.1单参数函数接受两个参数

6.2 柯里化一个函数

把多参数函数,变成单参数函数

7.高阶函数

    把函数作为参数或者返回值的函数

JS内置的高阶函数:

    1.Function.prototype.bind

    2.Function.prototype.apply

    3.Function.prototype.call

    4.Function.prototype.sort

    5.Function.prototype.map

    6.Function.prototype.filter

    7.Function.prototype.reduce

7.1 Function.prototype.bind

7.2 Function.prototype.apply

7.3 Function.prototype.call

8.函数的组合

相关文章

  • 函数全解

    1.函数是什么? 子程序(routine):一个或多个语句组成,完成特定任务,相对独立。分为【函数】、【过程】、【...

  • 函数全解

    函数的环境 函数是什么 函数的返回值有什么确定 影响因素调用时输入的参数 params定义时的环境 env 上面的...

  • javascript函数全解

    0.0 概述 本文总结了js中函数相关的大部分用法,对函数用法不是特别清晰的同学可以了解一下。 1.0 简介 同其...

  • JS函数全解

    函数是什么 JS的所有函数都有返回值,所以只有函数没有过程。 函数的返回值是由什么确定 调用使得输入参数:para...

  • clickhouse开窗函数-全解

    clickhouse支持开窗函数后更香了 文章推荐 clickhouse数据模型之留存分析[https://www...

  • 最酷炫的动画函数(matrix)详细全解

    css3 matrix()矩阵 参数matrix()有六个参数:matrix(a,b,c,d,e,f); 这六个参...

  • Python--字符串函数方法全解

    format() 方法基本使用 使用方法:<模板字符串>.format(<逗号分隔的参数>) format() 方...

  • less全知全解

    一.简介 1.less是什么Less 是一门 一种动态样式语言,它扩充了 CSS 语言,增加了诸如变量、混合(mi...

  • 易经全解

    一:以自我为中心的人,将困于人生最大的陷阱 人人都有“自我”——身体、思想、财产、名誉、地位等等。如果你是一个聪明...

  • docker全解

    基本概念 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发...

网友评论

      本文标题:函数全解

      本文链接:https://www.haomeiwen.com/subject/luzpactx.html