随笔分类 -  js

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