随笔分类 -  JS

摘要:KMP算法是目前应用非常广泛的一种字符串匹配算法,因为其代码量比较少,相较传统的解法又多了一个初学会比较陌生的辅助数组,所以在刚接触的情况下比较难以理解。 需要说明的是,kmp算法有非常多的改进或衍生版本,看每一个版本的说明时建议看到底再看其它版本,防止概念混淆。比如 next 数组的定义,某些版本 阅读全文
posted @ 2020-02-17 17:34 牛有肉 阅读(294) 评论(0) 推荐(0) 编辑
摘要:小记一次小功能,头像的预览和上传。 头像的预览和上传依赖前端的几个机制: 1. 对于 input ,type 为 file 时浏览器会为我们提供文件选择功能,且选择文件后可以在该 input 中拿到选取文件的信息,借此通过 JS 将文件读为二进制或者Base64或者文本格式的串进行后续处理。 2. 阅读全文
posted @ 2020-02-17 14:22 牛有肉 阅读(1621) 评论(0) 推荐(0) 编辑
摘要:理解一个数据结构,我们应该首先明白该数据结构的作用与应用场景,尔后理清其逻辑结构,基于逻辑结构考虑如何在计算机上进行物理存储,最后对以上进行代码实现。 我们按上述思考顺序来实现一次线段树。 作用及应用场景 我们考虑一个场景,我们有一个长度为 n 的数组,我们需要经常进行两种操作: 1. 计算某个区间 阅读全文
posted @ 2020-02-14 21:45 牛有肉 阅读(619) 评论(0) 推荐(0) 编辑
摘要:文章篇幅较长,知识点涵盖比较广泛,作为学习 JS 的一个总结。文章中仅涵盖 ES5 及之前的传统的知识点,未涵盖 ES6 及之后的新特性。 JavaScript(简称“JS”) 是一种具有函数优先的轻量级,解释型或即时编译型的编程语言。虽然它是作为开发Web页面的脚本语言而出名的,但是它也被用到了很 阅读全文
posted @ 2020-02-04 17:54 牛有肉 阅读(503) 评论(0) 推荐(1) 编辑
摘要:关于 λ 演算在这篇博客 λ表达式与邱奇数,JAVA lamda表达式实现 中做了一个初步的介绍,这次我们来看一些实际应用中的例子:闭包。闭包的知识点有很多,但核心概念就一个,从 λ 演算的角度看便是:自由变量的替换依赖于定义函数的上下文环境。也就是说上下文环境的改变会通过影响函数中的自由变量而直接 阅读全文
posted @ 2020-02-01 23:22 牛有肉 阅读(471) 评论(1) 推荐(1) 编辑
摘要:前言 学习 λ 演算的初衷是为了更好的使用 JAVA8 的 lamda表达式,但是在学习过程中发现 λ 演算的作用和深度远远比想象的大的多得多。λ 演算的定义并不复杂,包括一条变换规则(变量替换)和一条函数定义方式,但其外延却囊括和渗透到了无数方向,乃至学习过程中脑中不断冒出一句话:内涵越小、外延越 阅读全文
posted @ 2020-01-31 21:50 牛有肉 阅读(1237) 评论(0) 推荐(1) 编辑