函数式编程

一、函数式编程有什么好处

1、代码简洁

2、函数间耦合度低,便于代码管理和迭代更新

二、什么是纯函数

类似于数学里的函数,x-y 是一一对应关系,一个函数只有一个输出值,函数能只进行运算,不进行其他处理,这也被称为无副作用,简言之函数只管函数内部的事情,外面的一概不管。

阅读全文

three.js 基础实战 —— 创建画布

一、场景创建

要显示一个画面需要有以下三个元素: scene, camera 和 renderer,renderer 渲染器是根据 scene 和 camera 进行渲染的

阅读全文

常见算法思想

一、穷举

通过穷举所有的组合,得出结论,🌰:

/**
* 今有鸡兔同笼,上有三十五头,下有九十四足,问鸡兔各几何?
* 解法:通过题目可以知道,鸡和兔的总数量为0-35只,
* 我们可以假设鸡为0,兔子为35,用鸡的个数*2+兔子的个数*4就可以得到总的脚
的数量,如果等于94,那么便是答案,
* 如果不等,则鸡的数量+1,兔子数量-1,依次类推,穷举所有情况直到得到答案
*/
var enumeratingAlgorithm = (head, foot) => {
let j;
for (let i = 0; i <= head; i++) {
//i代表鸡的数量
//j代表兔子的数量
j = head - i;
if (i * 2 + j * 4 === foot) {
console.log("鸡的个数为[ %d ]只,兔子的个数为[ %d ]只。", i, j);
return;
}
}
};
enumeratingAlgorithm(35, 94);
// 鸡的个数为[ 23 ]只,兔子的个数为[ 12 ]只。

阅读全文

CSS 系列文章 —— 文本处理

一、font-size

chrom 默认有字体限制最小是 12px,也就是小于 12 px 的字号都相当于 12px,但是 font-size: 0 例外,还是会保持为 0,利用这个特性可以实现可访问性隐藏

阅读全文

NPM Package.json 字段列表(包括非官方字段)

得空看看一些源码,发现 Package.json 文档里有些字段是不常见的,自然也不知道配置的是什么,查官方文档, 发现有些找不到,看到一篇不错的英文文档,翻译一下,以后好查看。

阅读全文

Hexo 支持数学公式

一、版本

hexo: 3.0.0

theme: maupassant

二、快速开始

1、安装插件

(1) 升级 hexo 到 3.0+,因为 hexo-math 插件只支持高版本

阅读全文

时间复杂度 vs 空间复杂度

一、时间复杂度

1、是什么

一般情况下,算法中基本操作重复执行的次数是问题规模 n 的某个函数,用 T(n) 表示,若有某个辅助函数 f(n),使得当 n 趋近于无穷大时,T(n) / f(n) 的极限值为不等于零的常数,则称 f(n) 是 T(n) 的同数量级函数。记作T(n)=O(f(n)),称O(f(n)) 为算法的渐进时间复杂度,简称时间复杂度,时间复杂度反映了程序执行时间随输入规模增长而增长的量级,在很大程度上能很好反映出算法的优劣与否。

阅读全文

CSS 系列文章 —— 层叠

一、层叠上下文

1、特性

(1) 层叠上下文的层叠水平要比普通元素高

(2) 层叠上下文可以阻断元素的混合模式

阅读全文

CSS 系列文章 —— 流的破坏与保护

一、float

1、本质: 实现文字环绕效果

2、作用机制

阅读全文

CSS 系列文章——盒尺寸

盒尺寸分为以下四种:content box、padding box、border box 以及 margin box,也就是容器盒子中的内在盒子的尺寸。

一、替换元素

1、🎓是什么

阅读全文