简单来说,一个 web 页面的生命周期,可以从用户输入 url 并点击访问开始(1⃣️)。浏览器发出请求给对应的服务端(2⃣️),服务端接收到请求后处理响应内容,并发送响应(3⃣️),浏览器收到服务端的返回请求(4⃣️),此时我们的页面才正式进入渲染阶段。
web 页面的渲染由两部分构成:
页面构
...
IntroductionDigraph. Set of vertices connected pairwise by directed edges.
有向图常见问题Path. Is there a directed path from s to t ?Shortest path. What is
...
Introduction定义: 图是由一组顶点和一组能够将两个顶点相连的边组成
Undirected graphsGraph. Set of vertices connected pairwise by edges.
Graph applications
图的相关术语Path. Sequence o
...
Introduction如果所有的键都是小整数,我们可以用一个数组来实现无序的符号表,将键作为数组的索引而数组中的键 i 处储存的就是它对应的值。这样我们就可以快速访问任意键的值。
使用散列的查找算法分为两步:第一步:使用散列函数将被查找的键转化为数组的一个索引第二步:处理碰撞冲突(拉链法和线性探测
...
2-3 树Allow 1 or 2 keys per node.
2-node: one key, two children.
3-node: two keys, three children.
Symmetric order. Inorder traversal yields keys in
...
简介快速排序是一种分治的排序算法。它将一个数组分成两个子数组,将两部分独立地排序。
优点:原地排序(只需要一个很小的辅助栈),且将长度为 N 的数组排序所需的时间和 NlogN 成正比;缺点:非常脆弱,在实现时要非常小心才能避免低劣的性能。
Basic Plan
Shuffle the array.
...
简介要将一个数组排序,可以先(递归地)将它分为两半分别排序,然后将结果归并起来。
优点: 将任意长度为 N 的数组排序所需时间和 NlogN 成正比;缺点:所需的额外空间和 N 成正比。
Basic Plan
Divide array into two halves.
Recursively sor
...
关于符号表基本功能Insert a value with specified key.Given a key, search for the corresponding value.
应用DNS lookup
Insert domain name with specified IP address
...
生命周期React 16 Lifecycle Methods: How and When to Use Them
constructorThe first thing that gets called is your component constructor.
Most Common Use C
...
Overview of HTTPAn overview of HTTP
HTTP is an application-layer protocol for transmitting hypermedia documents.
HTTP follows a classical client-serve
...
基本介绍相关术语Domain Name SystemNetworking system in place that allows us to resolve human-friendly names to unique addresses.
Domain NameA domain name is
...
Who runs the Internet
Understanding client and serverThe Client
The device in front of you
Runs some kind of web browser
The Server
Where your public
...
Function the Ultimatethis
The this parameter contains a reference to the object of invocation.
this allows a method to know what object it is concerne
...
docker 是什么什么是容器What is a Container?
A container is a standard unit of software that packages up code and all its dependencies so the application runs
...
Charles 是在 Mac 下常用的网络封包截取工具,在做移动开发时,我们为了调试与服务器端的网络通讯协议,常常需要截取网络封包来分析。Charles 通过将自己设置成系统的网络访问代理服务器,使得所有的网络访问请求都通过它来完成,从而实现了网络封包的截取和分析。
基础设置Charles 从入门到
...
几种 CSS 布局
Normal flow
Flexbox
Grid
Floats
Positioning
Table layout
Multiple-column layout
针对具体场景使用合适的布局方式
Each technique has its uses, advantages, a
...
Chapter 1: Accustoming Yourself to JavaScriptItem 1: Know Which JavaScript You Are UsingItem 2: Understand JavaScript’s Floating-Point NumbersItem 3:
...
What is Git? Why Git?What is Git?
Why Git for your organization
Why Git for your organizationFeature Branch Workflow: One of the biggest advantages of
...
什么是 PromisePromise 是异步编程的一种解决方案,比传统的解决方案(回调函数和事件)更合理和更强大。
A promise is a placeholder for the result of an asynchronous operation.
Promise 的特点1. 对象的状态
...
Basic Notions
Expect: Used to construct assertions, compare a value with the expected result on a test. Chai Assertions.
Spy: A test spy is an object
...
简单的响应给定 a 和 b 两个参数,要求无论 a 如何变化,b 永远等于 a 的 10 倍,如何实现?
即如下效果:
123456let a = 3let b = a * 10console.log(b) // 30a = 4b = a * 10console.log(b) // 40
在每次改变
...
原文链接:How to Create and Publish a Chrome Extension in 20 minutes
有没有想过自己创建一个 Chrome 扩展应用?看完这篇文章你将会发现这是多么的简单。按照下面这些步骤,你将会很快地将你的想法实现为真实的应用,并在 Chrome Web
...
定义A closure is the combination of a function and the lexical environment within which that function was declared.
1234567891011function makeAdder(x)
...
单元测试
由开发人员写,给开发人员使用
小段代码,目的是开发人员确定源代码做了希望它做的事
一个UT case 只能针对一个类
一个类的 UT 必须是完全独立的
UT 可以是自动的,也可以是手动的
UT 覆盖率问题
测试时,当调用了其他类的代码时,应该使用 mock 将被测试类和其他类隔开
测试
...
Stray Birds, written by Indian poet Rabindranath Tagore, is one of my favorite poetry. It is about love, about nature, about humanity. It is full of h
...
Building account systems
Troy Hunt 近期发表了一篇题为『新时代的认证指南』的博文。文章对于「在你的网站中应该使用什么样的密码规则」给予了诸多建议,而这些参考了正式的政策提议的建议常常很能帮助你去说服你的同事或老板。
我在 Google 工作期间所从事的一个项目
...
原文链接:How to get the most out of the JavaScript console
在JavaScript中,最基本的调试工具就是console.log()。console中有还很多其他的实用方法可以成为开发者调试的好帮手。
使用console,你可以做到:
输出一个计时
...
Web浏览器、服务器和相关的Web应用程序都是通过HTTP相互通信的。HTTP是现代全球因特网中使用的公共语言。
HTTPHTTP(Hypertext Transfer Protocol),中文一般翻译为“超文本传输协议”,HTTP使用的是一种可靠的数据传输协议,使用HTTP通信能够保证数据在传输的
...
队列和栈非常类似,但是使用了不同的原则,而非后进先出。
队列是遵循FIFO(First In First Out,先进先出, 也称先来先服务)原则的一组有序的项。队列在尾部添加新元素,并从顶部移除元素。最新添加的元素必须排在队列的末尾。
在现实中,最常见的例子就是排队:
排在第一位的人会先接受服务。
...