摘要: 1)应用层进行DNS解析 通过域名解析成IP地址。在解析过程中,按照浏览器缓存、系统缓存、路由器缓存、ISP(运营商)DNS缓存、根域名服务器、顶级域名服务器、主域名服务器的顺序,逐步读取缓存,直到拿到IP地址。 DNS协议是一个查询/回复的协议,查询和回复的数据格式相同。当一个应用需要把域名解析为 阅读全文
posted @ 2020-03-13 18:04 Lorasysu 阅读(393) 评论(0) 推荐(0)
摘要: 本质上,webpack 是一个现代 JavaScript 应用程序的静态模块打包器(module bundler)。当 webpack 处理应用程序时,它会递归地构建一个依赖关系图(dependency graph),其中包含应用程序需要的每个模块,然后将所有这些模块打包成一个或多个 bundle。 阅读全文
posted @ 2020-03-13 17:13 Lorasysu 阅读(755) 评论(0) 推荐(0)
摘要: 进程可看作系统中正在运行的一个程序,是系统资源分配的独立实体。每一个进程都有独立的地址空间,无法访问另一个进程的变量和数据结构,除非使用进程间的通信,比如管道,文件,套接字等。 一个进程可以拥有多个线程,每个线程使用所属进程的栈空间。 线程与进程的一个主要区别是,同一进程内的多个线程会共享部分状态, 阅读全文
posted @ 2020-03-13 14:47 Lorasysu 阅读(116) 评论(0) 推荐(0)
摘要: TCP与UDP的区别 UDP协议是面向无连接的,也就是说不需要在正式传递数据之前连接起双方;UDP协议只是数据报文的搬运工,不保证有序且不丢失地传递到对端,具有不可靠性和高效性,适用于实时性要求高的地方;UDP支持一对多,多对多,多对一的传输方式。 TCP在建立连接和断开连接都需要先进行握手,在传输 阅读全文
posted @ 2020-03-13 14:34 Lorasysu 阅读(239) 评论(0) 推荐(0)
摘要: 对象类型在赋值的过程其实是复制了地址,从而会导致改变了一方另一方也会改变。如下例子: let a = { age: 1}let b = aa.age = 2console.log(b.age) // 2 然而在开发中我们一般不希望出现这样的问题,于是就有了浅拷贝方法。 首先可以通过 Object.a 阅读全文
posted @ 2020-03-13 13:28 Lorasysu 阅读(145) 评论(0) 推荐(0)
摘要: 当我们创建一个对象时 let obj = { age: 25 },我们可以发现能使用很多种函数,但是我们明明没有定义过它们。 当我们在浏览器中打印 obj 时你会发现,在 obj 上居然还有一个 __proto__ 属性,那么看来之前的疑问就和这个属性有关系了。 每个js对象都有__proto__ 阅读全文
posted @ 2020-03-13 12:59 Lorasysu 阅读(155) 评论(0) 推荐(0)
摘要: function foo() { console.log(this.a) } var a = 1 foo() const obj = { a: 2, foo: foo } obj.foo() const c = new foo() 先来看几种常见的用法场景: 1)对于直接调用foo来说,this指向 阅读全文
posted @ 2020-03-13 11:23 Lorasysu 阅读(141) 评论(0) 推荐(0)
摘要: ”更新视图但不重新请求页面“是前端路由的核心,浏览器中主要有两种方式实现这种功能: 路由控制 1)hash angular和vue目前实现的路由,总会在path后面加上#!这些,兼容性很好,ie6也是支持的。 hash虽然出现在URL中,但不会被包含在HTTP请求中,改变hash不会重新加载页面; 阅读全文
posted @ 2020-03-13 10:24 Lorasysu 阅读(88) 评论(0) 推荐(0)