随笔分类 - js
摘要:移动应用功能越来越丰富,部分功能需要以 H5 方式来实现 这就需要 H5 与 Native 进行交互,我们使用 JSBridge 来进行二者通信 JSBridge 定义 Native 和 H5 的通信方式 Native 通过协定的桥对象调用 H5 H5 通过协定的桥对象调用 Native 一、交互方
阅读全文
摘要:前端异常 日志上报服务搭建 关于前端异常分类与捕获可以看看我的这篇文章 JavaScript 网页异常捕获 既然异常已经捕获到了,那我们怎么处理呢,如何上报,需要上报哪些内容? 一、日志分类 1、一般日志分类等级 log、debug、info、warn、error 2、分场景使用日志上报类型 log
阅读全文
摘要:JavaScript 网页异常捕获 一、异常大概分类 一般我们想要捕获的异常大概分类: 1、语法错误 开发阶段通过 IDE 提示和 eslint 等工具处理 注意: a、onerror 事件代码块与 语法错误代码块 不在一起 b、或者同在一个代码块,但是 语法错误代码块 异步执行 都可以用 oner
阅读全文
摘要:JavaScript 错误类型 一、基础错误类型 JavaScript 中可以通过 Error 构造函数创建一个错误对象 当运行时出错,Error 的实例对象将被抛出 语法: /** * @param message: 错误信息 * @param fileName: 发生错误所在文件名 * @par
阅读全文
摘要:一、原因 日常项目中可能会遇到的场景,比如 1、记录用户完成的多个步骤 2、用户提交信息后,后台审核驳回的多个原因字段 ... 这些如果用多个字段表示会非常麻烦,而且不好记,多余 我们可以使用二进制的形式来包含不同的状态 二、使用方式 /** * description:根据 二进制转换成的 10
阅读全文
摘要:一、背景 在项目中使用 toast 发现不是 vant 官方所说的默认单例模式 1、操作 在 created 中多次调用 Toast.loading() 发现生成了多个 toast 元素 使用 Toast.clear() 只能关掉一个 2、项目中对 Toast 封装 Toast.loading 以及
阅读全文
摘要:一、普通实现 拖拽实现原理: 1. 后 , 2. 时 1. 拖拽元素 定位位置 = 拖拽元素 与 左侧的距离 + 减去 2. 拖拽元素 定位位置 = 拖拽元素 与 顶部的距离 + 减去 鼠标 与 拖拽元素 位置变化关系 1. 第二次点击 left 位置 = 第一次当时的 offsetLeft + (
阅读全文
摘要:数组转链表 普通做法 javascript / @param {Array} arr 要转换的数组 @param {Number} start 数组下标,默认为 0 / function array2list(arr, start = 0) { // 若序号等于数组长度,说明处理完成,直接返回 nu
阅读全文
摘要:try catch finally 执行顺序与抛错机制 一、结论 1. ,若有报错,执行 catch 2. 3. try 和 catch 中 , 4. catch 中若报错: 猜测先 ,等待 finally 执行完毕后,抛出错误 5. catch 中若报错, finally 也报错: 1. 猜测先
阅读全文
摘要:集合 Set 备注:基本借鉴 MDN "集合Set MDN文档链接" 因为是个新的对象,还比较好用,经常使用有 去重、取交集、并集、差集等等。 这里重点学习下,并学学常用场景 一、描述 Set 对象允许你存储任何类型的唯一值,无论是原始值或者对象引用 Set 对象是值的集合,可以按照插入的顺序迭代它
阅读全文
摘要:区别 slice 截取从 位置开始, 位置结束(不包含 end) 的字符串, 若参数为负数,需要从尾部位置倒数 作为生效位置 大于 ,则返回空字符串 大于字符串长度,返回空字符串 substring 截取从 位置开始, 位置结束(不包含 end) 的字符串, `不支持负数 0` 大于 ,会将两者位置
阅读全文
摘要:背景 很多时候我们已经熟悉了框架的运用,但是有时候就是忘了怎么用 所以这里想记下大部分的框架使用方法,方便使用的时候拷贝 注:大部分文案以及示例拷贝自 Vue Router 官方文档 一、安装 npm 方式 yarn 方式 二、功能 嵌套的路由/视图表 模块化的、基于组件的路由配置 路由参数、查询、
阅读全文
摘要:背景 很多时候我们已经熟悉了框架的运用,但是有时候就是忘了怎么用 所以这里想记下大部分的框架使用方法,方便使用的时候拷贝 一、安装 npm 方式 yarn 方式 二、vuex 用法 1、引入以及安装 2、正常使用 (1)、state (2)、getters (3)、mutations (4)、act
阅读全文
摘要:一、背景 与同事合作开发一个项目,后面修改 CSS 时,发现属性顺序跟我写的不一样 我从事开发前端时,导师是有给我大概指定了一定的书写规范 现在开发时,看到的 CSS 属性排序不一样,看起来有点难受(代码洁癖),修改起来也多少有点不方便 都说 JavaScript 代码要求规范,那么我们仔细说说为啥
阅读全文
摘要:一、排序分类 二、排序代码
阅读全文
摘要:一、背景 1. 前端开发需要依赖后端接口 2. 后端接口输出慢、接口规范随时可能会变,而前端毫无感知 3. 前端需要自己 mock 假数据 json 文件 4. 假数据 json 数据内容是静态的,测试不同返回情况需要修改 json 文件 ... 因此我们需要一种可以帮我们构造数据的工具,并解决以上
阅读全文
摘要:一、概念:事件循环 JavaScript是单线程的 1、整片 放到执行栈中,执行之后,会触发很多方法 这些方法只能一个个的顺序执行,不能并发 2、这些要执行的方法会放到一个称之为事件队列的地方 3、事件队列又分为宏任务队列和微任务队列,所以要执行的方法会被分类到各自类型的队列列表 4、微任务队列的任
阅读全文
摘要:一、柯里化定义 在计算机科学中,柯里化是把 接受多个参数的函数 变换成 接受一个单一参数(最初函数的第一个参数)的函数 并且返回 接受余下参数且返回结果的新函数的技术 高阶函数 高阶函数是实现柯里化的基础,高阶函数是至少满足以下两个特性之一 1、函数可以作为参数被传递 2、函数可以作为返回值输出 一
阅读全文
摘要:JavaScript 中深拷贝实现 拷贝时候涉及到: 1、循环结构 2、判断数组 Array 还是对象 Object 函数实现 /** * 获取满足条件的数组中的第一个元素 * @param {Array} list 将要筛选的数组 * @param {Function} f 用来过滤的函数 */
阅读全文
摘要:节流: 在规定时间内,多次触发事件,但是只执行一次 场景:输入框搜索,地图渲染 优化用户体验 防抖:多次触发事件,以最后一次触发时机开始,延迟规定时间执行 场景:浏览器滚动时加载图片,点击提交按钮 优化性能 有时候节流和防抖可以交替使用,看业务需求,并不是那么死板
阅读全文

浙公网安备 33010602011771号