随笔分类 - 大厂面试
并发编程导论
摘要:并发编程导论是对于分布式计算-并发编程 https://url.wx-coder.cn/Yagu8 系列的总结与归纳。 并发编程导论 随着硬件性能的迅猛发展与大数据时代的来临,并发编程日益成为编程中不可忽略的重要组成部分。简单定义来看,如果执行单元的逻辑控制流在时间上重叠,那它们就是并发(Concu
阅读全文
HTTP1.0、HTTP 1.1、HTTP 2.0之间的主要区别
摘要:HTTP1.0与HTTP 1.1的主要区别 长连接 节约带宽 HOST域 HTTP1.1与HTTP 2.0的主要区别 多路复用 二进制分帧 首部压缩 服务器推送 一、HTTP1.0与HTTP 1.1的主要区别 长连接 HTTP 1.0需要使用keep-alive参数来告知服务器端要建立一个长连接,而
阅读全文
锚点定位且不改变url地址
摘要:锚点定位且不改变url html 事件触发<li v-for="(item,index) in couponsList.swaps" :key="index" @click="toTegional(index)">{{regionalList[index]}}</li> 12锚点埋藏 <div v-
阅读全文
scrollIntoView 与平滑滚动
摘要:经常有这样的需求:点击一个链接(内链)跳转到当前页面中间某个部分。对于这样的需求,很容易想到使用锚点实现。但有一个问题:滚动一步到位,太生硬了。 我还是比较喜欢平滑滚动。HTML5 中提供了 CSS 属性 scroll-behavior 并且修改了一系列滚动函数的可接受参数用于支持平滑滚动特性。 s
阅读全文
JS 中的require 和 import 区别
摘要:在研究react和webpack的时候,经常看到在js文件中出现require,还有import,这两个都是为了JS模块化编程使用。CSS的是@import 1.ES6 模块的设计思想,是尽量的静态化,使得编译时就能确定模块的依赖关系,以及输入和输出的变量。 Require是CommonJS的语法,
阅读全文
js中的生成器函数
摘要:入门 简单来说,用法如下: function* fn() { console.log(1); //暂停! yield; //调用next方法继续执行 console.log(2); } var iter = fn(); iter.next(); //1 iter.next(); //2 1、函数生成
阅读全文
call、apply、bind
摘要:bind 是返回对应函数,便于稍后调用;apply 、call 则是立即调用 。 apply、call 在 javascript 中,call 和 apply 都是为了改变某个函数运行时的上下文(context)而存在的,换句话说,就是为了改变函数体内部 this 的指向。JavaScript 的一
阅读全文
网络模型
摘要:1. 什么是协议 为了使数据可以在网络上从源传递到目的地,网络上所有设备需要“讲”相同的“语言” 描述网络通信中“语言”规范的一组规则就是协议 例如:两个人交谈,必须使用相同的语言,如果你说汉语,他说阿拉伯语…… 数据通信协议的定义 决定数据的格式和传输的一组规则或者一组惯例 2. 协议分层 网络通
阅读全文
面向过程与面向对象编程的区别和优缺点
摘要:■面向过程与面向对象编程的区别 面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了; 面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。 可以拿生活中的实例来理解面向
阅读全文
express与koa对比
摘要:使用体验koa const Koa = require('koa'); const app = new Koa(); app.use(ctx => { ctx.body = 'Hello Koa'; }); app.listen(3000); express const app = require(
阅读全文
十种跨域实现方式
摘要:1.通过jsonp跨域 2.document.domain + iframe跨域 3.location.hash + iframe 4.window.name + iframe跨域 5.postMessage跨域 6.跨域资源共享(CORS) 7.nginx代理跨域 8.nodejs中间件代理跨域
阅读全文
js事件循环机制Event Loop
摘要:Event Loop 是 JavaScript 异步编程的核心思想,也是前端进阶必须跨越的一关。同时,它又是面试的必考点,特别是在 Promise 出现之后,各种各样的面试题层出不穷,花样百出。这篇文章从现实生活中的例子入手,让你彻底理解 Event Loop 的原理和机制,并能游刃有余的解决此类面
阅读全文
服务器端和客户端有什么区别
摘要:区别是两者的服务对象不同。服务器端是为客户端服务的,客户端就是为真正的“客户”来服务的,所以这两者之间不同,但又密切相连,客户端是请求方或者说是指令发出方,而服务器端是响应方。 1、客户端:在web中是以request对象存在的,发送请求给服务器端处理,具体的使用方法可以查找javaee的servl
阅读全文
Cookie中的sessionid与JSONP原理
摘要:一、首先说明一下cookie中的sessionid的作用。 1、cookie只是一些文本内容,多是键值对的形式,是请求头中的一部分 2、http是无连接的 知道这两点,就可以很容易的理解sessionid的作用的。 session是保存在服务器端的,与客户端的一次会话。session中用于保存会话的
阅读全文
requestAnimationFrame
摘要:在Web应用中,实现动画效果的方法比较多,Javascript 中可以通过定时器 setTimeout 来实现,css3 可以使用 transition 和 animation 来实现,html5 中的 canvas 也可以实现。除此之外,html5 还提供一个专门用于请求动画的API,那就是 re
阅读全文
JS函数的防抖和节流
摘要:1.防抖是把多次执行转换为最后一次执行; 节流是每隔一定时间执行一次; 目的都是,降低回调执行频率。节省计算资源。 防抖常用于:搜索框搜索输入、手机号、邮箱验证输入检测、窗口大小Resize; 节流常用于:滚动加载、表单重复提交、搜索联想功能 2. 防抖 函数防抖在执行目标方法时,会等待一段时间。当
阅读全文
JS 中的广度与深度优先遍历
摘要:现在有一种类似树的数据结构,但是不存在共同的根节点 root,每一个节点的结构为 {key: 'one', value: '1', children: [...]},都包含 key 和 value,如果存在 children 则内部会存在 n 个和此结构相同的节点,现模拟数据如下图: 已知一个 va
阅读全文
堆、栈和队列
摘要:1. 堆 堆是在程序运行时,而不是在程序编译时,申请某个大小的内存空间。即动态分配内存,对其访问和对一般内存的访问没有区别。堆是指程序运行时申请的动态内存,而栈只是指一种使用堆的方法(即先进后出)。 2. 栈(stack)——先进后出,删除与加入均在栈顶操作 栈也称为堆栈,是一种线性表。 堆栈的特性
阅读全文
JavaScript垃圾回收机制
摘要:一、垃圾回收的必要性 下面这段话引自《JavaScript权威指南(第四版)》 由于字符串、对象和数组没有固定大小,所有当他们的大小已知时,才能对他们进行动态的存储分配。JavaScript程序每次创建字符串、数组或对象时,解释器都必须分配内存来存储那个实体。只要像这样动态地分配了内存,最终都要释放
阅读全文
前端如何处理内存泄漏
摘要:定义 内存泄漏:应用程序不再需要的内存,由于某种原因,内存没有返回到操作系统或可用内存池中。 原因 1.意外的全局变量 JS 在处理未声明的变量时,对未声明的变量的引用会在全局对象内创建一个新变量。这些全局变量是无法进行垃圾回收的(除非将它们赋值为 null 或重新进行分配),所以对于存储大量数据的
阅读全文