摘要:一、CSRF 1、什么是 CSRF CSRF(全称 Cross-site request forgery),即跨站请求伪造 2、攻击原理 用户登录A网站,并生成 Cookie,在不登出的情况下访问危险网站B 3、防御措施 ① 加 Token 验证,通过判断页面是否带有 Token 来进行验证 ② 加 阅读全文
posted @ 2019-09-05 10:05 Leophen 阅读 (14) 评论 (0) 编辑
摘要:样式的导入方式 link @import link @import 一、link 的使用 二、@import 的使用 三、link 和 @import 的区别 1、引入的内容不同 link 除了引用样式文件,还可以引用图片等资源文件,而 @import 只引用样式文件 2、加载顺序不同 link 引 阅读全文
posted @ 2019-08-24 22:12 Leophen 阅读 (62) 评论 (0) 编辑
摘要:一、DOM 事件模型 DOM 事件模型包括捕获和冒泡,捕获是从上往下到达目标元素,冒泡是从当前元素,也就是目标元素往上到 window 二、流 流的概念,在现今的 JavaScript 中随处可见。比如说 React 中的单向数据流,Node 中的流,还有 DOM 事件流,都是流的一种生动体现。至于 阅读全文
posted @ 2019-08-24 18:26 Leophen 阅读 (92) 评论 (0) 编辑
摘要:一、什么是 iframe iframe 用于在页面内显示页面,使用 <iframe> 会创建包含另外一个文档的内联框架(即行内框架) 二、iframe 的常用属性 1、width 定义 iframe 的宽度 2、height 定义 iframe 的高度 3、name 规定 iframe 的名称 4、 阅读全文
posted @ 2019-08-24 10:36 Leophen 阅读 (153) 评论 (0) 编辑
摘要:WebSocket 是 HTML5 新增的协议,它的目的是在浏览器和服务器之间建立一个不受限的双向通信的通道,比如说,服务器可以在任意时刻发送消息给浏览器。 为什么传统的 HTTP 协议不能做到 WebSocket 实现的功能?这是因为 HTTP 协议是一个请求-响应协议,请求必须先由浏览器发给服务 阅读全文
posted @ 2019-08-23 18:24 Leophen 阅读 (87) 评论 (0) 编辑
摘要:一、JavaScript 的继承 许多面向对象语言都支持两种继承的方式:接口继承和实现继承。接口继承只继承方法签名,而实现继承则继承实际的方法。在 JavaScript 中由于函数没有签名也就无法实现接口继承,而只支持实现继承,而且实现继承主要通过原型链来实现的。 先引述下官方文档对于原型链的描述: 阅读全文
posted @ 2019-08-23 17:55 Leophen 阅读 (114) 评论 (0) 编辑
摘要:一、什么是 KMP 算法 KMP 算法是一种改进的字符串匹配算法,用于判断一个字符串是否是另一个字符串的子串 二、KMP 算法的时间复杂度 O(m+n) 三、Next 数组 - KMP 算法的核心 KMP算法的核心是利用匹配失败后的信息,尽量减少模式串与主串的匹配次数以达到快速匹配的目的。具体实现就 阅读全文
posted @ 2019-08-23 12:26 Leophen 阅读 (28) 评论 (0) 编辑
摘要:一、网络模型 计算机网络的两种模型:OSI 模型和 TCP/IP 模型 由于 OSI 模型过于复杂难以实现,导致 TCP/IP 模型更早地应用在现实中,这也使得 TCP/IP 模型成为标准 在 OSI 模型中,将计算机网络分成了 7 层,而在 TCP/IP 模型中则分成了 4 层,其各层对应关系如下 阅读全文
posted @ 2019-08-23 03:24 Leophen 阅读 (30) 评论 (0) 编辑
摘要:一、不稳定排序算法有哪些 1、堆排序 2、希尔排序 3、快速排序 4、选择排序 口诀:一堆(堆)希尔(希尔)快(快速)选(选择) 二、常见排序算法稳定性分析 1、堆排序稳定性分析 我们知道堆的结构是节点i的孩子为 2*i 和 2*i+1 节点,大顶堆要求父节点大于等于其 2 个子节点,小顶堆要求父节 阅读全文
posted @ 2019-08-23 02:34 Leophen 阅读 (18) 评论 (0) 编辑
摘要:一、什么是页面置换算法 进程运行时,若其访问的页面不在内存而需将其调入,但内存已无空闲空间时,就需要从内存中调出一页程序或数据,送入磁盘的对换区,其中选择调出页面的算法就称为页面置换算法。 好的页面置换算法应有较低的页面更换频率,也就是说,应将以后不会再访问或者以后较长时间内不会再访问的页面先调出 阅读全文
posted @ 2019-08-23 01:28 Leophen 阅读 (17) 评论 (0) 编辑
摘要:执行数据库查询时,有完整查询和模糊查询之分,一般模糊语句如下: SELECT 字段 FROM 表 WHERE 某字段 Like 条件 一、四种匹配模式 关于条件,SQL提供了四种匹配模式: 1、% 表示任意0个或多个字符,可匹配任意类型和长度的字符。有些情况下是中文,需用两个百分号(%%)表示: 将 阅读全文
posted @ 2019-08-23 00:26 Leophen 阅读 (101) 评论 (0) 编辑
摘要:“进程是资源分配的最小单位,线程是CPU调度的最小单位” 一、进程(Process) 1、什么是进程 进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。 在早期面向进程设计的计算机结构中,进程是程序的基本执行实体;在当代面 阅读全文
posted @ 2019-08-22 23:49 Leophen 阅读 (14) 评论 (0) 编辑
摘要:1、什么是预解析? 在当前作用域下,JS 运行之前,会把带有 var 和 function 关键字的事先声明,并在内存中安排好。(这个过程也可以理解为变量提升)然后再从上到下执行 JS 语句(预解析只会发生在通过 var 定义的变量和 function 上) 2、var 声明的变量 使用 var 声 阅读全文
posted @ 2019-08-22 16:18 Leophen 阅读 (32) 评论 (0) 编辑
摘要:关于 new 运算符的原理: 1、红宝书上解释: (1)创建一个新对象 (2)将构造函数的作用域赋给新对象 (3)执行构造函数中的代码 (4)返回新对象 2、MDN上的解释: (1)一个继承自 Foo.prototype 的新对象被创建 (2)使用指定的参数调用构造函数 Foo,并将 this 绑定 阅读全文
posted @ 2019-08-21 20:39 Leophen 阅读 (47) 评论 (0) 编辑
摘要:类型转换是将值从一种类型转换为另一种类型的过程(比如字符串转数字,对象转布尔值等) 一、类型转换的分类 类型转换可以分为隐式类型转换和显式类型转换。 二者的区别显而易见:我们能够从代码中看出哪些地方是显式强制类型转换,而隐式强制类型转换则不那么明显,通常是某些操作产生的副作用。 例如: 对变量 b 阅读全文
posted @ 2019-08-20 17:49 Leophen 阅读 (17) 评论 (0) 编辑
摘要:一、边距重叠常见情况 1、垂直方向上相邻元素的重叠 (水平方向上不会发生重叠) 2、 垂直方向上父子元素间的重叠 二、BFC 1、什么是 BFC BFC(Block Formatting Context),即块级格式化上下文,创建了 BFC 的元素是一个独立的容器,里面无论如何布局都不会影响到外面的 阅读全文
posted @ 2019-08-16 02:40 Leophen 阅读 (74) 评论 (0) 编辑
摘要:一、搜索引擎工作原理 搜索引擎的工作分为三个阶段,即爬行,索引和检索 1、爬行 搜索引擎具有网络爬虫或蜘蛛来执行爬网,每次抓取工具访问网页时,它都会复制该网页并将其网址添加到索引中。 在“蜘蛛”抓取网页内容,提炼关键词的这个过程中,就存在一个问题:“蜘蛛”能否看懂。如果网站内容是 flash 和 j 阅读全文
posted @ 2019-08-14 16:03 Leophen 阅读 (32) 评论 (0) 编辑
摘要:一、什么是 axios Axios 是一个基于 promise 的 HTTP 库,可以用在浏览器和 node.js 中 二、axios 的安装 1、在项目根目录终端引入: 2、在使用 axios 的 js 文件中加入: 三、axios 的使用 这里引用 mock-api 生成的数据,结合 Ant D 阅读全文
posted @ 2019-08-13 02:29 Leophen 阅读 (49) 评论 (0) 编辑
摘要:一、什么是 mock-api mock-api(模客)是一个便捷的 REST 接口数据模拟工具,用于前后端隔离测试,开发调试。 二、mock-api 的使用 1、注册登录 http://mock-api.com/ 2、建立模拟系统 可以是某个后端服务,也可以是一组相关的api集合 3、创建规则 规则 阅读全文
posted @ 2019-08-13 01:47 Leophen 阅读 (61) 评论 (0) 编辑
摘要:一、什么是 Ant Design 1、Ant Design 提炼自企业级中后台产品的交互语言和视觉风格 2、Ant Design 使用 TypeScript 构建,提供完整的类型定义文件 二、Ant Design 的安装 1、在项目根目录终端引入: 2、在 index.js 中加入: 三、Ant D 阅读全文
posted @ 2019-08-10 19:11 Leophen 阅读 (92) 评论 (0) 编辑