04 2022 档案

摘要:代码实现 // 寻找和为 n 的两个数(嵌套循环) export function findTowNumbers1(arr: number[], n: number): number[] { const res: number[] = [] const length = arr.length if 阅读全文
posted @ 2022-04-28 22:38 夏目友人喵 阅读(87) 评论(0) 推荐(0) 编辑
摘要:代码实现 // 思路 // 递归--代码逻辑更加清晰 // 非递归 性能更好(相对来说) // 时间复杂度o(log(n)) 很快// 凡有序,必二分// 凡二分,时间复杂度必包含O(logn) /** * 二分查找(循环) * @param arr arr * @param target targ 阅读全文
posted @ 2022-04-27 23:33 夏目友人喵 阅读(403) 评论(0) 推荐(0) 编辑
摘要:// queue-with-list // 数组是连续存储:push很快,shift很慢 // 链表是非连续存储,add和delete都很快,但是查找慢 // 结论: 链表实现队列更快 // 数据结构的选择,要比算法优化更重要 // 要有时间复杂度的敏感性,比如:length不能遍历查找,要单独存储 阅读全文
posted @ 2022-04-27 23:09 夏目友人喵 阅读(56) 评论(0) 推荐(0) 编辑
摘要:定义一个函数,输入一个单向链表的头节点,反转该链表,并输出反转之后的头节点 链表 链表是一种物理结构(非逻辑结构),是数组的补充。 数组需要一段连续的内存空间,而链表不需要。 数据结构 - 单向链表 `{ value, next }` - 双向链表 `{ value, prev, next }` 两 阅读全文
posted @ 2022-04-27 00:10 夏目友人喵 阅读(65) 评论(0) 推荐(0) 编辑
摘要:请用两个栈,来实现队列的功能,实现功能 `add` `delete` `length` 。 分析: 栈,先进后出 队列,先进先出,API 包括 - add - delete - length 常见的“消息队列”就是队列的一种应用场景 - A 系统向 B 系统持续发送海量的消息 - A 系统先把一条一 阅读全文
posted @ 2022-04-26 23:19 夏目友人喵 阅读(39) 评论(0) 推荐(0) 编辑
摘要:题目 一个字符串内部可能包含 `{ }` `( )` `[ ]` 三种括号,判断该字符串是否是括号匹配的。 如 `(a{b}c)` 就是匹配的, `{a(b` 和 `{a(b}c)` 就是不匹配的。 栈 Stack 栈,先进后出,基本的 API - push - pop - length 和栈相关的 阅读全文
posted @ 2022-04-25 23:52 夏目友人喵 阅读(63) 评论(0) 推荐(0) 编辑
摘要:1、注意算法时间复杂度 2、识破内部API的时间复杂度,如unshift 3、单元测试,考虑参数非法情况,提升代码健壮性 重点 1、优先考虑时间复杂度 2、比复杂度更重要的是:代码逻辑清晰,易读 1、数组方法:pop,unshift export function rotate1(arr: numb 阅读全文
posted @ 2022-04-25 22:49 夏目友人喵 阅读(80) 评论(0) 推荐(0) 编辑
摘要:首先,JavaScript 有两种源文件,一种叫做脚本,一种叫做模块。这个区分是在 ES6 引入了模块机制开始的,在 ES5 和之前的版本中,就只有一种源文件类型(就只有脚本)。脚本是可以由浏览器或者 node 环境引入执行的,而模块只能由 JavaScript 代码用 import 引入执行。 从 阅读全文
posted @ 2022-04-19 22:43 夏目友人喵 阅读(251) 评论(0) 推荐(0) 编辑
摘要:自动插入分号规则 自动插入分号规则其实独立于所有的语法产生式定义,它的规则说起来非常简单,只有三条。 要有换行符,且下一个符号是不符合语法的,那么就尝试插入分号。 有换行符,且语法中规定此处不能有换行符,那么就自动插入分号。 源代码结束处,不能形成完整的脚本或者模块结构,那么就自动插入分号。 这样描 阅读全文
posted @ 2022-04-18 23:45 夏目友人喵 阅读(201) 评论(0) 推荐(0) 编辑
摘要:帮助我们快速理解编译原理相关的知识。 分析按照编译原理相关的知识,我们来设计一下工作,这里我们分成几个步骤。 定义四则运算:产出四则运算的词法定义和语法定义。 词法分析:把输入的字符串流变成 token。 语法分析:把 token 变成抽象语法树 AST。 解释执行:后序遍历 AST,执行得出结果。 阅读全文
posted @ 2022-04-18 23:40 夏目友人喵 阅读(110) 评论(0) 推荐(0) 编辑
摘要:今天了解一下 JavaScript 的文法 文法是编译原理中对语言的写法的一种规定,一般来说,文法分成词法和语法两种。 词法规定了语言的最小语义单元:token,可以翻译成“标记”或者“词”,在我的专栏文章中,我统一把 token 翻译成词。 从字符到词的整个过程是没有结构的,只要符合词的规则,就构 阅读全文
posted @ 2022-04-18 23:26 夏目友人喵 阅读(133) 评论(0) 推荐(0) 编辑
摘要:DOM 中的所有的属性都是用来表现语义的属性,CSSOM 的则都是表现的属性,width 和 height 这类显示相关的属性,都属于我们今天要讲的 CSSOM。 顾名思义,CSSOM 是 CSS 的对象模型,在 W3C 标准中,它包含两个部分:描述样式表和规则等 CSS 的模型部分(CSSOM), 阅读全文
posted @ 2022-04-14 23:40 夏目友人喵 阅读(284) 评论(0) 推荐(0) 编辑
摘要:正常流的行为 首先,我们先从词源来讲一讲排版这件事。 在毕昇发明活字印刷之前,排版这项工作是不存在的,相应的操作叫做“雕版”。人们要想印刷书籍,就需要依靠雕版工人去手工雕刻印版。 活字印刷的出现,将排版这个词引入进来,排版是活字印刷的 15 道工序之一,不论是古代的木质活字印刷,还是近代的铅质活字印 阅读全文
posted @ 2022-04-14 23:01 夏目友人喵 阅读(77) 评论(0) 推荐(0) 编辑
摘要:链接这种元素可以说是占据了整个互联网。也正是因为无处不在的超链接,才让我们的万维网如此繁荣。 没有了超链接的 HTML,最多可以称为富文本,没法称作超文本(hyper text)。 不过,除了肉眼可见的这些链接,其实 HTML 里面还规定了一些不可见链接的类型,这节课,我就来给你介绍链接家族的全员, 阅读全文
posted @ 2022-04-13 21:06 夏目友人喵 阅读(934) 评论(0) 推荐(0) 编辑
摘要:DOM,指的就是狭义的文档对象模型。 DOM API 介绍 首先我们先来讲一讲什么叫做文档对象模型。 顾名思义,文档对象模型是用来描述文档,这里的文档,是特指 HTML 文档(也用于 XML 文档,但是本课不讨论 XML)。同时它又是一个“对象模型”,这意味着它使用的是对象这样的概念来描述 HTML 阅读全文
posted @ 2022-04-13 20:43 夏目友人喵 阅读(178) 评论(0) 推荐(0) 编辑
摘要:选择器的组合 在 CSS 规则中,选择器部分是一个选择器列表。 选择器列表是用逗号分隔的复杂选择器序列;复杂选择器则是用空格、大于号、波浪线等符号连接的复合选择器;复合选择器则是连写的简单选择器组合。根据选择器列表的语法,选择器的连接方式可以理解为像四则运算一样有优先级。 第一优先级:无连接符号 复 阅读全文
posted @ 2022-04-13 20:31 夏目友人喵 阅读(128) 评论(0) 推荐(0) 编辑
摘要:选择器是由 CSS 最先引入的一个机制(但随着 document.querySelector 等 API 的加入,选择器已经不仅仅是 CSS 的一部分了)。 选择器的基本意义是:根据一些特征,选中元素树上的一批元素。 我们把选择器的结构分一下类,那么由简单到复杂可以分成以下几种。 简单选择器:针对某 阅读全文
posted @ 2022-04-12 23:50 夏目友人喵 阅读(262) 评论(0) 推荐(0) 编辑
摘要:语句是任何编程语言的基础结构,与 JavaScript 对象一样,JavaScript 语句同样具有“看起来很像其它语言,但是其实一点都不一样”的特点。 我们比较常见的语句包括变量声明、表达式、条件、循环等,这些都是大家非常熟悉的东西,对于它们的行为,我在这里就不赘述了。为了了解 JavaScrip 阅读全文
posted @ 2022-04-12 23:34 夏目友人喵 阅读(140) 评论(0) 推荐(0) 编辑
摘要:函数 第一种,普通函数:用 function 关键字定义的函数。 第二种,箭头函数:用 => 运算符定义的函数。 第三种,方法:在 class 中定义的函数。 示例: class C { foo(){ //code } } 第四种,生成器函数:用 function * 定义的函数。 第五种,类:用 阅读全文
posted @ 2022-04-12 22:35 夏目友人喵 阅读(66) 评论(0) 推荐(0) 编辑
摘要:闭包;作用域链; 执行上下文; this 值。 实际上,尽管它们是表示不同的意思的术语,所指向的几乎是同一部分知识,那就是函数执行过程相关的知识。我们可以简单看一下图。 闭包 闭包闭包翻译自英文单词 closure,这是个不太好翻译的词,在计算机领域,它就有三个完全不相同的意义:编译原理中,它是处理 阅读全文
posted @ 2022-04-11 23:57 夏目友人喵 阅读(49) 评论(0) 推荐(0) 编辑
摘要:首先我们考虑一下,如果我们是浏览器或者 Node 的开发者,我们该如何使用 JavaScript 引擎。 当拿到一段 JavaScript 代码时,浏览器或者 Node 环境首先要做的就是;传递给 JavaScript 引擎,并且要求它去执行。 然而,执行 JavaScript 并非一锤子买卖,宿主 阅读全文
posted @ 2022-04-11 23:25 夏目友人喵 阅读(47) 评论(0) 推荐(0) 编辑
摘要:我们可以先来了解一下什么是元信息类标签。所谓元信息,是指描述自身的信息,元信息类标签,就是 HTML 用于描述文档自身的一类标签,它们通常出现在 head 标签中,一般都不会在页面被显示出来(与此相对,其它标签,如语义类标签,描述的是业务)。 元信息多数情况下是给浏览器、搜索引擎等机器阅读的,有时候 阅读全文
posted @ 2022-04-11 22:52 夏目友人喵 阅读(313) 评论(0) 推荐(0) 编辑
摘要:在之前的几篇文章中,我们已经经历了把 URL 变成字符流,把字符流变成词(token)流,把词(token)流构造成 DOM 树,把不含样式信息的 DOM 树应用 CSS 规则,变成包含样式信息的 DOM 树,并且根据样式信息,计算了每个元素的位置和大小。 那么,最后的步骤,就是根据这些样式信息和大 阅读全文
posted @ 2022-04-08 10:19 夏目友人喵 阅读(32) 评论(0) 推荐(0) 编辑
摘要:在构建 DOM 树和计算 CSS 属性这两个步骤,我们的产出都是一个一个的元素,但是在排版这个步骤中,有些情况下,我们就没法做到这样了。 尤其是表格相关排版、flex 排版和 grid 排版,它们有一个显著的特点,那就是子元素之间具有关联性。 基本概念 “排版”这个概念最初来自活字印刷,是指我们把一 阅读全文
posted @ 2022-04-08 00:11 夏目友人喵 阅读(90) 评论(0) 推荐(0) 编辑
摘要:浏览器是如何把 CSS 规则应用到节点上,并给这棵朴素的 DOM 树添加上 CSS 属性 整体过程 首先 CSS 选择器这个名称,可能会给你带来一定的误解,觉得好像 CSS 规则是 DOM 树构建好了以后,再进行选择并给它添加样式的。实际上,这个过程并不是这样的。 构建 DOM 的过程是:从父到子, 阅读全文
posted @ 2022-04-07 23:59 夏目友人喵 阅读(42) 评论(0) 推荐(0) 编辑
摘要:今天我们主要来看两个过程:如何解析请求回来的 HTML 代码,DOM 树又是如何构建的。 HTML 的结构不算太复杂,我们日常开发需要的 90% 的“词”(指编译原理的术语 token,表示最小的有意义的单元),种类大约只有标签开始、属性、标签结束、注释、CDATA 节点几种。 实际上有点麻烦的是, 阅读全文
posted @ 2022-04-07 23:29 夏目友人喵 阅读(23) 评论(0) 推荐(0) 编辑
摘要:对浏览器来说,就是把一个 URL 变成一个屏幕上显示的网页。 这个过程是这样的: 1. 浏览器首先使用 HTTP 协议或者 HTTPS 协议,向服务端请求页面; 2. 把请求回来的 HTML 代码经过解析,构建成 DOM 树; 3. 计算 DOM 树上的 CSS 属性; 4. 最后根据 CSS 属性 阅读全文
posted @ 2022-04-07 22:55 夏目友人喵 阅读(80) 评论(0) 推荐(0) 编辑
摘要:JavaScript 类型对每个前端程序员来说,几乎都是最为熟悉的概念了。但是你真的很了解它们吗?我们不妨来看看下面的几个问题。 为什么有的编程规范要求用 void 0 代替 undefined? 字符串有最大长度吗? 0.1 + 0.2 不是等于 0.3 么?为什么 JavaScript 里不是这 阅读全文
posted @ 2022-04-07 14:08 夏目友人喵 阅读(82) 评论(0) 推荐(0) 编辑
摘要:我们先来说说为什么要用语义。 现在我们很多的前端工程师写起代码来,多数都不用复杂的语义标签, 只靠 div 和 span 就能走天下了。 这样做行不行呢?毫无疑问答案是行。那这样做好不好呢?按照正确的套路,我应该说不好,但是在很多情况下,答案其实是好。 这是因为在现代互联网产品里,HTML 用于描述 阅读全文
posted @ 2022-04-06 16:40 夏目友人喵 阅读(80) 评论(0) 推荐(0) 编辑
摘要:写在前面: 重学前端系列是基于学习winter老师的重学前端课程进行的 个人状态: 散点自学 + 基础不牢 而对于工作之后的前端开发者来说,没有系统学习的问题仍然存在,常常有一些具有多年从业经验的工程师,仍然会在看到一些用法时惊呼:“还可以这样!”在我看来,这些用法都是一些基础的不能再基础的知识点, 阅读全文
posted @ 2022-04-06 13:48 夏目友人喵 阅读(212) 评论(0) 推荐(0) 编辑
摘要:// 为什么会有这个东西,因为用百度云下载了很多视频,不知道为什么存在很多 .downloading的文件,所以就有了这段代码,还有就是文件名带了很多没用的信息,想把无用信息剔除掉就有了后面的一段代码/** * 删除目录下 指定 文件方法 * 参数: dir 文件夹名称 * fs.stat => 判 阅读全文
posted @ 2022-04-06 10:50 夏目友人喵 阅读(712) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示