Hexo

simple but delicate theme for Hexo

前端八股

kartjim | 2023/07/16

Hello World

2023/07/08

Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.

Quick Start

Create a new post

1
$ hexo new "My New Post"

More info: Writing

Run server

1
$ hexo server

More info: Server


公式渲染

2023/05/08

公式渲染示例


VSCode使用技巧

2023/05/03

最常用快捷键

  • ctrl + shift + pf1 命令面板
  • ctrl + p 打开输入框
    • 多次点击可实现文件跳转
    • 输入 ? 可查看所有可用的相关命令
  • ctrl + shift + tab 在打开的文件内跳转
  • ctrl + shift + o 跳转到文件中的符号
  • ctrl + G 跳转到文件中的某一行

JavaScript 函数式编程04-函子

2023/02/21

函子是范畴论中的个概念,它把一个范畴中的对象映成另一个范畴的对象,把一个范畴中的态射映成另一个范畴中的态射,形象理解为范畴之间的“映射”。

简单来说,函子是某种映射关系。函子Functor 在 JavaScript 里主要是将某些值或对象包含起来并实现对应的一些函数来处理这些数值或对象的函数,函子必须实现map函数,其在遍历对象值的时候返回一个新对象。

换句话说,函子是实现了map的对象。举个例子:

1
2
3
4
5
6
7
8
9
const Box = function(val) {
this.val = val;
}
Box.of = function(val) {
return new Box(val);
}
Box.prototype.map = function(func) { // 必须
return Box.of(func(this.val));
}

JavaScript 函数式编程03-组合与管道

2023/02/15

compose and pipe

函数式编程就是将每个不同的计算部分分散封装到不同的函数内,等到使用的时候再一一拿出来并按照一定的顺序进行执行,就类似于管道一样,共同组合成一个完整的函数。

组合:每个程序的输出可以是另一个程序的输入,每个基础命令结合起来即可完成复杂的任务。

例如:处理数组 let arr = [2, 3, 7, 8]; 将其中大于5的值取出来并减一,可以使用:

1
map(filter(arr, i => i > 5), i => i-1)

SVG之画家模型

2023/02/09

SVG的渲染模型是画家模型

fill and stroke

fill属性

fill属性用于填充,默认填充黑色,如果不想要填充,可以将其设置为 none。还可以设置为 currentColor 关键词,这会让内联的 svg 与周围的 html 文本颜色协调或者为重复使用的内容提供一个间接继承的值。

相关属性:

  • fill-opacity 设置透明度
  • fill-rule
    • evenodd 边缘线分割图形的内部与外部
    • nonzero 默认值,倾向于 “得到更多的内部空间”

stroke属性


JavaScript 函数式编程之数组与柯里化

2023/02/08

数组的函数式方法

当程序员谈到函数式编程时,基本都会提到三个数组相关的函数方法:map filter reduce,综合利用它们可以实现一个完整的数据流动和处理 。其中mapfilter 被称为投影函数,即将一个函数作用于数组上并生成一个新的数组。

js数组函数式方法

注意:forEachmap 都是遍历数组,forEach 函数是作用于数组,并不会返回新的数组,但是map会返回一个新数组。

  • map 遍历数组,按照给定的函数执行,并储存并返回生成的新数组。
    • 不改变原数组
  • filter 遍历数组,按照给定的函数筛选数组,返回符合要求的值的数组。
    • 不改变原数组
  • reduce 从前往后遍历数组,按照给定的函数“整合”数组,返回一个结果值。
    • 不改变原数组

JavaScript 函数式编程基础

2023/02/05

函数式编程是一种编程范式,它将计算机运算视为函数的计算。

函数式编程语言语言最重要的基础是 $\lambda$ 演算。JavaScript 是一种十分灵活的编程语言,其可以算是多范式语言,即支持函数式编程、命令式编程、对象式编程等。

函数式编程涉及许多数学概念,不同于过程式编程和对象式编程,由其名字即可看出,在函数式编程中,函数是一等公民。函数式编程涉及的概念有:

  • 闭包
  • 高阶函数
  • 柯里化
  • 偏应用
  • 组合与管道
  • 函子
  • Monad

svg基础

2023/02/03

svg是一种xml格式的文件

SVG不只是简单的矢量图,还可以加上更复杂的绘画和更细致的效果,包括渲染、渐变、应用到文本,甚至可以添加图片。

  1. 通过代码来画画
  2. 开源
  3. XML
  4. 可压缩
  5. 图片是形状的集合
  6. 图片中可以包含图片
  7. 与数学息息相关
  8. 是无数canvas的有限集
  9. 有结构、有样式
  10. 基于DOM
  11. 可移动
  12. 便于用户交互

参考资料

  • 《深入理解SVG》
长风破浪会有时,直挂云帆济沧海