-
webpack
https://juejin.cn/post/6844904094281236487https://juejin.cn/post/6844903505333878798https://juejin.cn/post/7031322059414175774#heading-6…
-
js基础
预编译…
-
typescript
为什么要使用typescriptjavascript 是一门动态弱类型的语言,对变量的类型十分宽容,而且不会在这些变量和他们的调用者之间建立契约,对javascript类型进行静态检查 typescript 更像是一门工具而不是一门语言, 类型检查,typescript会在编译时进行严格的静态类型检查,这意味着可以在编码的阶段发现可能存在的隐患 语言扩展 ...…
-
浏览器相关
页面的重绘和重排浏览器的运行机制 html被html解析器解析成DOM树 …
-
基础知识
实现垂直居中有哪些方式 flex布局,display: flex, align-items: center absolute + translate -50% postions: absolute;top: 50%;left: 50%;transform: translate(-50%, -50%); absolute + 负 margin width: 300px; height: 200px; position: absolute; left:...…
-
http
网络和并发http 1.0/1.1/2.0 在并发请求上的主要区别是什么? HTTP/1.0每次TCP连接都只能发送一个请求,当服务器响应后就会关闭此次连接,下次再发请求还需要再次建立tcp连接 http/1.1默认采用持续连接,tcp连接默认不关闭,,可以被多个请求服用,不用显式的声明keep-alive增加了管道机制,在同一个tcp连接里,允许多个请求同时发送,增加了一定的并发性同一个tcp连接里,所有的数据通信是按照顺序进行的,如果服务器响应慢,会有很多的请求...…
-
闭包
你了解闭包?你平常用闭包的场景有哪些?闭包的定义? 闭包是指那些能够访问自由变量的函数 自由变量是指函数中使用的,但即不是函数参数也不是函数局部变量的变量 从理论角度:所有的函数都有可能是闭包,函数中去访问全局变量就相当于是在访问自由变量 从实践角度: 2.1 即使创建它的上下文已经被销毁了,他仍然存在,(内部函数从父函数中返回) 2.2 代码引用了自由变...…
-
webpack
webpackwebpack中的module是指什么? webpack 支持ESModule, commonJs AMD Assests(image,font, video, audio,json)1.ESMimport export// package.jsontype: module -> ESMtype: commonjs -> CommonJswebpack modules,如何表达自己的各种依赖关系? ESM import CommonJs require c...…
-
vue
前端技术相关vue双向绑定原理 所谓的双向绑定建立在MVVM模型基础上的: 数据层 model: 应用的数据以及业务逻辑 视图层 view: 应用的展示效果,各类的UI组件等 业务逻辑层 viewmodel:负责将数据和视图关联起来所谓双向绑定: 数据变化后更新视图 视图变化后更新数据包含两个主要的组成部分 监听器 observer: 对所有的数据属性进行监听 解析器 compiler: 对每个元素节点的指令进行扫描和解析,根据指令替换数据,绑定对应的更新函数### 具体的...…
-
event loop
浏览器的事件循环机制? event loop 宏任务: 代码块、setTimeout、 setInterval I/O操作 微任务 new Promise().then() 为什么要引入微任务,只有宏任务可以吗? 宏任务,先进先出的原则执行,对于高优先级的任务就无法处理了node 中的事件循环和浏览器中的事件循环有什么区别? 宏任务的执行顺序: timers定时器,执行已经安排的setTimeout和se...…
-
常见代码题
用setTimeout 实现setIntervallet timer = null;function mockSetInterval(fn, delay, ...args) { const recurFn = function() { timer = setTimeout(() => { fn.apply(this, atgs); recurFn(); }, delay); } recurFn(...…
-
react 相关
react fiber fiber 架构目的 为了使react渲染的过程中可以被中断,将控制权交还给浏览器,可以让位给高优先级的任务,浏览器空闲之后再恢复渲染,对于计算量比较大的js计算或者dom计算,不会显得卡顿,有规律的执行任务 generator 有类型中断的功能,为什么不直接使用 要使用generator ,需要将所有代码包装成generator的形式 generator 内部是要有状态 如何判断当前是否有高...…
-
css相关
移动端适配方案 1.media queries 2.flex布局 3.rem + viewport 4.vh vm 5.百分比 media queries 主要通过查询设备的宽度来执行不同的css代码,最终达到界面的配置 优点:方法简单,成本低,图片便于修改,只需修改css文件,调整屏幕宽度时不需要刷新页面即可响应式展示 ...…
-
状态码
常用状态码 101: 切换请求的协议,从http切换到websocket 200: 请求成功 201: 已创建 202: 已接收 203: 非授权信息 204: 无内容 300: 多种选择 301: 永久重定向 302: 临时重定向 304: 未修改,使用的是缓存 305: 使用代理 400: 客户端存在语法错误 401: 发送的请求需要认证信息 ...…
-
react相关
react项目中有哪些细节可以优化?实际开发中做过哪些优化? 分包,减少资源加快首屏打开的速度 由于react是父级props改变之后,所有于props不相关子组件在没有条件控制的情况下,也会触发render渲染,这是没有必要的,可以结合react的pureComponent以及React.memo等做浅比较 最后就是保证整个应用的可用性,为组件创建错误边界,可以使用componentDidCatch来处理 保证数据的不可变性 使用唯一的键值迭代 使用web worker ...…
-
css相关
伪类跟伪元素的区别 其核心就是选择DOM元素之外的信息,不能够被普通选择器选择的文档之外的元素,用来添加一些选择器的特殊效果 比如 :hover :active :link :visited :focus 由于状态变化是非静态的,达到一个状态获得一个样式,状态改变失去这个样式 由此可见,它的功能跟class类似,但是基于文档之外抽象,所以叫伪类 伪元素: DOM 没有定义的虚拟元素 核心就是要创建通常不存在于文档中的元素,比如::aft...…
-
算法相关
1.写一个 mySetInterVal(fn, a, b),每次间隔 a,a+b,a+2b 的时间, 然后写一个 myClear,停止上面的 mySetInterValfunction mySetInterVal(fn, a, b) { this.time = 0; let timer; this.start = () => { timer = setInterval(() => { fn(); t...…
-
http
http/1.1 tcp连接数限制 对于同一个域名,浏览器最多只能同时创建6~8个TCP连接,不同的浏览器不同,为了解决这个限制,出现了域名分片技术,其实就是资源分域,将资源放在不同的域名下,比如二级子域名,这样就可以针对不同域名创建连接并请求,这样是可以解决问题,但是滥用会造成很多问题,比如每个TCP连接本身需要经过DNS查询、三步握手、慢启动等,还占用额外的CPU和内存,对于服务器来说过多连接也容易造成网络拥堵、交通阻塞,对于移动端来说问题更加明显。 ...…
-
machine learning
含义 异步编程的一种解决方案,所谓Promise,简单说是一个容器,里面保存着某个未来才会结束的事件 具有两个特点: 对象的状态不受外界影响,有三种状态:pending、fulfiled、reject,只有异步操作的结果可以决定当前是哪一种状态,任何其他操作都无法改变这个状态 状态一旦改变,就不会再改变,任何时候都可以得到这个结果 缺点: 1.无法取消,一旦建立就会立即执行 2.如...…
-
machine learning
NumPy Numpy 系统是 Python 的一种开源的数组计算扩展,是一个用 python 实现的科学计算包。包括: 1)一个具有矢量算术运算和复杂广播能力的快速且节省空间的多维数组,称为 ndaaray(N-dimensional array object) 用于对于数组数据进行快速运算的标准数学函数, ufunc(universal function object) ...…