未分类

js函数式编程读书笔记

js函数式编程简介

两个函数

  1. existy(x) {return x != null;}
    定义事物的存在,使用松散不等式就可以来区分null,undefined和其他所有对象值

  2. truthy(x) {return (x !== false) && existy(x) ;}
    用来判断一个对象是否该被认为是true的同义词

何为函数式编程

  1. 一个对”存在”抽象函数的定义
  2. 一个建立在存在函数之上的,对”真”的抽象函数的定义
  3. 通过其他函数来使用上面两个函数,以实现更多行为

对于我个人而言,编程风格的第一条规则是:写漂亮的代码。在我的职业生涯中,我已在不同程度上实现了这个目标,但它仍然是我追求的东西。写漂亮的代码使得我从另一个方面优化了时间:坐在一张桌子边打字的时间。我发现如果做得好,函数式代码风格可以很漂亮。希望在快要看完本书的时候,你会同意这个观点。

一等函数和Applicative编程

为什么说函数是一等公民

js中值是一等公民,所以函数就可以去任何值可以去的地方。

  1. 函数和数字一样可以存储为变量
  2. 函数和数字一样可以存储为数组的一个元素
  3. 函数和数字一样可以作为对象的成员变量
  4. 函数和数字一样可以在使用时直接创造出来
  5. 函数和数字一样可以被传递给另一个函数
  6. 函数和数字一样可以被另一个函数返回

其中,最后两点就是高阶函数的定义,一个高阶函数至少应该可以执行下列至少一项操作:

  1. 以一个函数作为参数
  2. 返回一个函数作为结果

多种js编程方式

命令式编程

通过详细描述行为的编程方式

基于原型的面向对象编程

基于原型对象及其实例的编程方式

元编程

对js执行模型数据进行编写和操作的编程方式

其他:面向类型和事件编程,语言本身作为实现媒介编程

分享到