Asser's Blog

Struggle For Tomorrow

性能监控方案

前端性能监控方案尝试 “没有数据统计的性能优化,都是耍流氓” — 京东凹凸实验室面试官 监控原因 关注性能是工程师的本职工作(做技术要有追求嘛) 页面性能需要大量的真实数据做支持 资源挂了,加载异常需要主动报警 监控方案 MDN参考链接 window.performance API 兼容情况 目前IE9以上的浏览器都兼容 相关属性 Perf...

算法题训练

2019-08-18 题目描述: 给定一个字符串,找出不含有重复字符的最长子串的长度 自己的解答: function findString(string) { let result = '' let current = '' let strs = string.split('') const isDuplicate = (...

计算机数据结构js版本

链表 概念: 链表是一个天然的线性结构,也是一个天然的递归结构。可以很方便的插入和删除节点。但是无法像数组一样使用index进行查找。只能通过遍历的方式。 #### 实现: ````javascript class Node { constructor(value, next) { this.value = value this.next = next...

面试提纲汇总

浏览器机制 浏览器的线程、进程梳理 进程和线程进程相当于工厂,线程相当于工人。一个工厂内有一个或者多个工人。工厂拥有自己的资源(比如cpu,内存)浏览器有多个进程,基本上每个页面都是一个进程,其他的还有browser进程(负责页面交互显示,前进后退。管理各个tab页面进程的创建和销毁),网络资源进程(下载资源),第三方插件进程,gpu进程(至多一个),浏览器渲染...

常见排序算法实现

插入排序 实现原理: 将数组分成‘已排序’和‘未排序’两个部分,一开始的时候,‘已排序’的部分只有一个元素,然后将它后面的一个元素从‘未排序’部分插入‘已排序’部分,从而将‘已排序’部分增加一个元素,而‘未排序’部分减少一个元素。以此类推完成排序 <font color=red>可以类比斗地主</font> 代码实现: const insertion...

Js数据类型和存储

js数据类型判断和内存存储方式 JavaScript数据类型 基本类型 String, Number, Boolean, Null, Undefined,Symbol,BigInt (后面两个为es6之后新增) > 引用类型 Array, Object, Function 数据存储方式 基本类型 数据全部固定长度,存储在栈内存中 > 引用类型 数据会存...

Jsbridge搭建

jsBridge 搭建 原理: native部分在window对象下注入自己的方法, web端通过调用被注入的方法来通知native 从而进行native方法的调用 native接到通知后,调用自己的方法,在调用结束后,再调用window对象的js方法,通知web端。 坑点: native的注入过程是一个异步操作。有可能在h...

浏览器端线程进程梳理

CPU 计算机的核心部分,负责计算机的计算任务。可看做是一个工厂。 ### 进程 学术上:进程是一个具有一定独立功能 的程序在一个数据集上的一次动态执行, 是操作系统进行资源分配和调度的独立单元(拥有独立的内存空间), 是应用程序的载体。 任一时刻,CPU总运行一个进程,其他进程处于非运行状态。 可以看做是工厂中的一个车间。 ### 线程 由于进程切换时...

事件循环机制(eventloop)

事件循环(EventLoop)机制 js引擎为单线程,意味着所有的任务最终都会在js引擎(主线程)中排队执行。而js中的任务又可以分为同步和异步两种。这两种任务都基于事件循环机制 来执行。 同步任务 同步任务作为首要任务在主线程执行 > 异步任务 异步任务被分配到另外一个线程管理的任务队列中等待处理。当异步任务符合执行 条件时,会在任务队列中添加可执行'事件'。当主线程中的...

Vue知识点(生命周期)

Vue知识点汇总 生命周期 先初始化一个全局的vue对象 import App from './App' window.vm = new Vue( el: '#app', components: { App }, template: '<App/>' ) beforeCreated 实例创建之后(全局new的Vue对象已经存在),数据初始化之前的状态。 此...