第二章 《整理代码》

1. JSX

为了在代码中使用JSX和ES2015的特性,我们需要安装Babel。

Babel是React社区广泛使用的一个流行的JavaScript编译器。

Babel可以将ES2015的JavaScript代码编译成ES5的,也能把JSX转化成JavaScript函数。这个过程称为转译,因为它将源代码编译成另一份新源代码,而不是可执行文件。

安装babel:npm install --global babel-cli

值得注意的是,jsx仅仅是语法糖,在浏览器中运行前需要转译成JavaScript。

2. ESLint

我们总是希望尽可能写出最佳代码,但有时总会出错,然后需要花数小时定位 bug,最后发现只是拼写错误,这很令人沮丧。好在一些工具可以帮助我们在输入过程中检查代码的正确性。

首先,执行以下命令来安装ESLint:npm install --global eslint

可执行程序安装完成后,就可以用以下命令来运行它:eslint source.js

输出结果会告诉我们文件中是否有错。安装后首次运行不会看到任何报错,因为它各方面都需要配置,一开始并不包含任何默认规则。

ESLint 规则具有决定问题严重程度的三个等级。 

off(或者 0):禁用规则  

 warn(或者 1):规则会产生警告

error(或者 2):规则会抛出错误  

3. 函数式编程

函数式编程就是一种声明式范式,能够避免代码副作用,同时它推崇数据不可变,以便更易维护与考量代码。

JavaScript函数是一等对象,这意味着它们可以赋给变量,也可以作为参数传递给其他函数。高阶函数接受一个函数作为参数,也可以传入其他参数,最后返回另一个函数。返回的函数经常会添加一些增强的特殊行为。

高阶函数

编写纯粹函数时函数式编程的一个重要方面。纯碎函数是指它不产生副作用,也就是说它不会改变自身作用域以外的任何东西。

举例来说,如果函数改变了应用状态、修改了上层作用域定义的变量,或者与DOM这样的外部实体发生了交互,那么该函数就是非纯函数。非纯函数很难调试,而且大多时候不可能多次调试他们并期望得到同样的结果。

纯函数与非纯函数

那么纯函数在修改变量值时应该怎么做呢?在函数式编程中,函数不会修改变量值,而是创建新的变量,赋新值后再返回变量。操作数据的这种方式称为不可变性。

柯里化是函数式编程的常用技巧。柯里化过程就是将多参数函数转换成单参数函数,这些单参数函数的返回值也是函数。

柯里化

组合:函数(和组件)可以结合产生新函数,从而提供更高级的功能与属性。

组合
函数式编程与UI

你可能感兴趣的:(第二章 《整理代码》)