
获得徽章 0
赞了这篇文章
赞了这篇文章
赞了这篇文章
赞了这篇文章
赞了这篇文章
赞了这篇文章
赞了这篇文章
赞了这篇文章
赞了这篇文章
Day16
纯函数
定义:当给定相同的输入时,纯函数总是返回一致的输出,并且永远不会产生超出函数范围的效果,使它们可以预测。纯函数不管执行多少次,结果都是可预测的。
非纯函数
定义:当给定相同的输入时,非纯函数可能不会返回一致的结果,并且它们可能会产生超出函数范围的影响,因此非纯函数的测试需要营造特定环境才能进行。
非纯函数是不可预测的,有副作用的。当一个项目中,非纯函数的数量越多,项目可维护性越差。
而高阶函数的出现,使得非纯函数可以简化成高阶函数+纯函数的形式进行使用。
同时,因为高阶函数也是纯函数,这样的调用形式不仅降低了测试成本还提高了项目可维护性。
现代化的编程语言支持命令式(面向过程和面向对象)和声明式(逻辑式和函数式)的代码风格。而Javascript同时支持命令式和声明式的代码风格。
命令式更偏向于怎么做,而声明式更倾向于做什么。
声明式的代码编写往往比命令式的代码更具有扩展性,在实际应用中声明式的代码风格更具优势。
纯函数
定义:当给定相同的输入时,纯函数总是返回一致的输出,并且永远不会产生超出函数范围的效果,使它们可以预测。纯函数不管执行多少次,结果都是可预测的。
非纯函数
定义:当给定相同的输入时,非纯函数可能不会返回一致的结果,并且它们可能会产生超出函数范围的影响,因此非纯函数的测试需要营造特定环境才能进行。
非纯函数是不可预测的,有副作用的。当一个项目中,非纯函数的数量越多,项目可维护性越差。
而高阶函数的出现,使得非纯函数可以简化成高阶函数+纯函数的形式进行使用。
同时,因为高阶函数也是纯函数,这样的调用形式不仅降低了测试成本还提高了项目可维护性。
现代化的编程语言支持命令式(面向过程和面向对象)和声明式(逻辑式和函数式)的代码风格。而Javascript同时支持命令式和声明式的代码风格。
命令式更偏向于怎么做,而声明式更倾向于做什么。
声明式的代码编写往往比命令式的代码更具有扩展性,在实际应用中声明式的代码风格更具优势。
展开
评论
点赞