在第一个例子中, 我们使用了在函数体外部创建的变量number, 并且在函数体内部对它进行了修改. 这就打破了原则....相反, 使用只有输入与输出, 并且变量仅存在函数内部的函数, 将会使得调试debug的过程更为简单.
此外, 函数应该遵循引用透明性原则, 这意味着, 对于相同的输入, 函数总会输出相同的输出....在上述的例子中, 如果对函数传入一个参数2, 那么它将始终返回结果4. 但是对于一个产生随机数的函数来说, 结果就不是这样了....Higher-order functions
高阶函数是指完成这两个任务之一的函数: 使用一个或多个函数作为他的参数; 返回一个函数....每一个独立的function都相对较小, 并且可以被复用于其他目的, 而组合后的它们能完成更加完整而独立的任务:
const sum = arr => arr.reduce((i, runningSum