zoukankan      html  css  js  c++  java
  • 《JavaScript ES6 函数式编程入门经典》笔记1

    在图书馆翻书,看到这本今年出版,很薄的书,翻起来看了几页,感觉写的通俗易懂,大概记录一下。

    1. 什么是函数是编程
      函数式编程技术主要基于 数学函数和它的思想
      数学中的函数有什么特点?
      如f(X)=Y:
    • 函数必须总是接收一个参数
    • 函数必须总是返回一个值
    • 函数应该依据接收到的参数,而不是外部环境运行

    JS 函数

    var percnetValue = 5;
    var calculateTax = (value) => {return value/100 * (100+ percnetValue)}
    

    calculateTax函数,用数学中函数的定义分析,它依赖了全局变量percnetValue,因此在数学意义上就不能成为一个真正的函数。
    用数学函数的思想。重新写一下这个函数

    var calculateTax = (value, percnetValue) => {return value/100 * (100+ percnetValue)}
    

    通过这个例子,我们定义一下函数式编程:
    函数式编程是一种范式,是仅依赖输入就可以完成自身逻辑的函数。

    函数与方法的区别:
    函数是一段可以通过其名称被调用的代码,可以传递参数并返回值
    方法是一段必须通过其名称及其关联对象的名称被调用的代码

    var simple = (a) => {return a}  //一个简单的函数
    simple(5) // 名称调用
    
    var obj = {simple: (a) => {return a}}  // 一个简单的方法
    obj.simple(5) // 名称及其关联对象调用
    
    1. 引用透明性
      根据函数的定义,可以得出结论,所有的函数对于相同的输入都将返回相同的值。

    2. 命令式、声明式、抽象

    命令式:如何做
    我们告诉编译器“获得长度,循环数组,用索引获取每一个数组元素,等等”

    var array = [1,2,3]
    for(i=0,i<array.length;i++):
        console.log(array(i))
    

    声明式:做什么
    告诉编译器做什么,移除了如何做的部分

    var array = [1,2,3]
    array.forEach((element) => console.log(element))
    

    函数式编程主张以抽象的方式创建函数,以利于重用

     
     
  • 相关阅读:
    Python3中urllib使用介绍
    python urllib和urllib3包
    Python--urllib3库
    Python基础-变量作用域
    Python 面向对象三(转载)
    Python 面向对象二(转载)
    Python 面向对象一(转载)
    YAML 在Python中的应用
    Redis 命令二
    基于Redis的Bloomfilter去重(转载)
  • 原文地址:https://www.cnblogs.com/jeff-ideas/p/10540321.html
Copyright © 2011-2022 走看看