在介绍函数式编程之前,我们先来看下函数在JS中的作用。在JS中,函数是一等公民,除了传统函数的使用,它可以作为普通变量一样作为函数参数,还可以在函数中被返回。除此之外,函数还可以当做类来使用,我们使用new加上函数就可以构造一个实例,并且子类还可以通过构造函数的prototype属性实现原型继承。在React中,组件其实也是一个函数。所以在JS中,函数无处不在。
在软件开发中,我们常见的编程形式有命令式编程和声明式编程。而函数式编程是一种较为抽象的编程方式,是一种强调以函数为主要开发风格的编程方式。在函数式编程中,我们以函数的形式思考和编程。
clientHeight和clientWidth:
元素可视内容区域的高度和宽度,不包括水平滚动条、边框和外边距。比如,clientWidth=width+padding
单位是像素px。整数(亲测,这是个四舍五入后的值)。返回值不带px
只读属性
offsetHeight和offsetWidth:
元素可视内容区域的高度和宽度,包括元素的边框、内边距和元素的水平滚动条(如果存在且渲染的话),不包括外边距和
或等伪类元素的高度。比如,offsetWidth=width+padding+borderWidth单位是像素px。整数(亲测,这是个四舍五入后的值)。返回值不带px
只读属性
scrollHeight 和 scrollWidth:
Promise是异步编程的一种解决方案。ES6提供原生支持,并为Promise提供了统一的 API。
从语法上说,Promise是一个JS的原生对象,从它可以获取异步操作的消息。
Promise 本身是一个构造函数,可以像下面这样构造一个Promise实例
javascriptconst p = new Promise((resolve, reject) => {
resolve('success');
});
console.log(p);
打印结果如下
Promise实例有两个私有属性,其中[[PromiseStates]]
代表状态,一共有三种状态,[[PromiseValue]]代表结果。
[[PromiseStates]]
[[PromiseValue]]