会员
众包
新闻
博问
闪存
赞助商
HarmonyOS
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
进击的小牛牛
成都小东
博客园
首页
新随笔
联系
订阅
管理
上一页
1
2
3
4
5
6
···
11
下一页
2019年12月3日
《数据结构与算法之美》 <04>链表(上):如何实现LRU缓存淘汰算法?
摘要: 今天我们来聊聊“链表(Linked list)”这个数据结构。学习链表有什么用呢?为了回答这个问题,我们先来讨论一个经典的链表应用场景,那就是 LRU 缓存淘汰算法。 缓存是一种提高数据读取性能的技术,在硬件设计、软件开发中都有着非常广泛的应用,比如常见的 CPU 缓存、数据库缓存、浏览器缓存等等。
阅读全文
posted @ 2019-12-03 10:49 进击的小牛牛
阅读(192)
评论(0)
推荐(0)
2019年12月2日
《浏览器工作原理与实践》<10>作用域链和闭包 :代码中出现相同的变量,JavaScript引擎是如何选择的?
摘要: 在上一篇文章中我们讲到了什么是作用域,以及 ES6 是如何通过变量环境和词法环境来同时支持变量提升和块级作用域,在最后我们也提到了如何通过词法环境和变量环境来查找变量,这其中就涉及到作用域链的概念。 理解作用域链是理解闭包的基础,而闭包在 JavaScript 中几乎无处不在,同时作用域和作用域链还
阅读全文
posted @ 2019-12-02 14:19 进击的小牛牛
阅读(330)
评论(0)
推荐(0)
《数据结构与算法之美》 <03>数组:为什么很多编程语言中数组都从0开始编号?
摘要: 提到数组,我想你肯定不陌生,甚至还会自信地说,它很简单啊。 是的,在每一种编程语言中,基本都会有数组这种数据类型。不过,它不仅仅是一种编程语言中的数据类型,还是一种最基础的数据结构。尽管数组看起来非常基础、简单,但是我估计很多人都并没有理解这个基础数据结构的精髓。 在大部分编程语言中,数组都是从 0
阅读全文
posted @ 2019-12-02 11:15 进击的小牛牛
阅读(259)
评论(0)
推荐(0)
2019年11月29日
《浏览器工作原理与实践》<09>块级作用域:var缺陷以及为什么要引入let和const?
摘要: 在前面我们已经讲解了 JavaScript 中变量提升的相关内容,正是由于 JavaScript 存在变量提升这种特性,从而导致了很多与直觉不符的代码,这也是 JavaScript 的一个重要设计缺陷。 虽然 ECMAScript6(以下简称 ES6)已经通过引入块级作用域并配合 let、const
阅读全文
posted @ 2019-11-29 16:36 进击的小牛牛
阅读(355)
评论(0)
推荐(0)
2019年11月28日
《浏览器工作原理与实践》<08>调用栈:为什么JavaScript代码会出现栈溢出?
摘要: 在上篇文章中,我们讲到了,当一段代码被执行时,JavaScript 引擎先会对其进行编译,并创建执行上下文。但是并没有明确说明到底什么样的代码才算符合规范。 那么接下来我们就来明确下,哪些情况下代码才算是“一段”代码,才会在执行之前就进行编译并创建执行上下文。一般说来,有这么三种情况: 1. 当 J
阅读全文
posted @ 2019-11-28 15:48 进击的小牛牛
阅读(353)
评论(0)
推荐(0)
2019年11月27日
《浏览器工作原理与实践》<07>变量提升:JavaScript代码是按顺序执行的吗?
摘要: 讲解完宏观视角下的浏览器后,从这篇文章开始,我们就进入下一个新的模块了,这里我会对 JavaScript 执行原理做深入介绍。 今天在该模块的第一篇文章,我们主要讲解执行上下文相关的内容。那为什么先讲执行上下文呢?它这么重要吗?可以这么说,只有理解了 JavaScrip 的执行上下文,你才能更好地理
阅读全文
posted @ 2019-11-27 16:35 进击的小牛牛
阅读(301)
评论(0)
推荐(0)
2019年11月26日
《数据结构与算法之美》 <02>复杂度分析(下):浅析最好、最坏、平均、均摊时间复杂度?
摘要: 上一节,我们讲了复杂度的大 O 表示法和几个分析技巧,还举了一些常见复杂度分析的例子,比如 O(1)、O(logn)、O(n)、O(nlogn) 复杂度分析。掌握了这些内容,对于复杂度分析这个知识点,你已经可以到及格线了。但是,我想你肯定不会满足于此。 今天会继续给你讲四个复杂度分析方面的知识点,最
阅读全文
posted @ 2019-11-26 17:25 进击的小牛牛
阅读(266)
评论(0)
推荐(0)
《设计模式之美》 <03>面向对象、设计原则、设计模式、编程规范、重构,这五者有何关系?
摘要: 面向对象 现在,主流的编程范式或者是编程风格有三种,它们分别是面向过程、面向对象和函数式编程。面向对象这种编程风格又是这其中最主流的。现在比较流行的编程语言大部分都是面向对象编程语言。大部分项目也都是基于面向对象编程风格开发的。面向对象编程因为其具有丰富的特性(封装、抽象、继承、多态),可以实现很多
阅读全文
posted @ 2019-11-26 11:30 进击的小牛牛
阅读(401)
评论(0)
推荐(0)
2019年11月25日
《数据结构与算法之美》 <01>复杂度分析(上):如何分析、统计算法的执行效率和资源消耗?
摘要: 我们都知道,数据结构和算法本身解决的是“快”和“省”的问题,即如何让代码运行得更快,如何让代码更省存储空间。所以,执行效率是算法一个非常重要的考量指标。 那如何来衡量你编写的算法代码的执行效率呢?这里就要用到我们今天要讲的内容:时间、空间复杂度分析。其实,只要讲到数据结构与算法,就一定离不开时间、空
阅读全文
posted @ 2019-11-25 13:43 进击的小牛牛
阅读(340)
评论(0)
推荐(0)
《浏览器工作原理与实践》<06>渲染流程(下):HTML、CSS和JavaScript,是如何变成页面的?
摘要: 在上篇文章中,我们介绍了渲染流水线中的 DOM 生成、样式计算和布局三个阶段,那今天我们接着讲解渲染流水线后面的阶段。 这里还是先简单回顾下上节前三个阶段的主要内容:在 HTML 页面内容被提交给渲染引擎之后,渲染引擎首先将 HTML 解析为浏览器可以理解的 DOM;然后根据 CSS 样式表,计算出
阅读全文
posted @ 2019-11-25 11:06 进击的小牛牛
阅读(543)
评论(1)
推荐(0)
上一页
1
2
3
4
5
6
···
11
下一页
公告