随笔分类 - JavaScript
摘要:广度优先搜索 BFS 广度优先搜索让你能够找出两样东西之间的最短距离,不适合加权图。 找出A点到B点的最短距离 // 用字典表示图形关系,遍历寻找 // 从自己出发,寻找邻居,如果找到直接返回,没找到将邻居入栈,继续寻找,直到所有节点搜索完毕。 let graph = {} graph['you']
阅读全文
摘要:暴力破解 辗转相除法,欧几里得算法 更相减损术 位移运算混合版 1、暴力破解,效率低下,如果求1000,10001,要循环1000/2 = 500次 时间复杂度O(n) function getMaxCommonDivisor(a, b) { let big = a > b ? a : b let
阅读全文
摘要:面试题:金矿问题-动态规划 很久很久以前,有一位国王拥有5座金矿,每座金矿的黄金储量不同,需要参与挖掘的工人人数也不同。例如有的金矿储量是500kg黄金,需要5个工人来挖掘;有的金矿储量是200kg黄金,需要3个工人来挖掘…… 如果参与挖矿的工人的总数是10。每座金矿要么全挖,要么不挖,不能派出一半
阅读全文
摘要:首先引入字体文件 引入字体到项目 @font-face { font-family: "UnidreamLED"; src: url('./1.ttf'); } 添加webpack解析 rules:[ { test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/, loader:
阅读全文
摘要:面试题:判断一个数是否是2的整数次幂 暴力破解 // 暴力破解,时间复杂度O(log(n)) function isPowerOf2(val) { let temp = 1; while (temp <= val) { if (temp val) { return true; } temp = te
阅读全文
摘要:面试题实战之链表 如何判断链表有环 // 1、如何判断链表有环 class PersonList { next = null; data = ''; constructor(data) { this.data = data } } let p1 = new PersonList('p1'); let
阅读全文
摘要:基础版本,先排序,再计算相邻差 // 排序,然后计算最大差值 function maxSortedNear(arr) { arr.sort((a, b) => a - b) let max = arr[0] for (let i = 1; i < arr.length; i++) { if (arr
阅读全文
摘要:Vue项目中添加手势实现左滑右滑操作 左滑右滑等手势可通过监听 和`touchmove`事件实现 记录起始坐标 计算当前位置 加上绝对值判断更加精确。
阅读全文
摘要:js Object.assign 方法 浅拷贝 Object.assign(target,...,source) Object.assign() 方法用于将所有可枚举属性的值从一个或多个源对象复制到目标对象。它将返回目标对象。 只是将属性值覆盖前面的,如果是引用类型,拷贝引用地址
阅读全文
摘要:Web界面简繁体转换 1、静态转换(逐字翻译) 2、界面翻译(逐字翻译) 3、国际化(语句替换) 1、静态转换 使用 Vue 插件 在打包时把本地的文字转换成繁体,动态加载的文字不会转换。也就是说接口返回的文字不会自动转换。 打包后无法再切换为简体。除非专门打一个简体的包。 使用方式 安装插件 np
阅读全文
摘要:H5骨架屏实战 骨架屏可提升用户体验,在网络情况比较差的时候有比较好的体验。看骨架屏总比白屏舒服。 骨架屏可以理解为是:当数据还未加载进来前,页面的一个空白版本 ,一个简单的关键渲染路径。 vue skeleton webpack plugin "基于 vue skeleton webpack pl
阅读全文
摘要:JavaScript heap out of memory问题 内存溢出 解决方式 安装 执行命令 `increase memory limit`
阅读全文
摘要:H5移动端横竖屏切换 监听设备信息进行切换 在需要转换的界面进行监听 收到通知进行处理。
阅读全文
摘要:JavaScript 中的 _ 用法 js的参数名可以是字母数字和下划线 可以做函数(方法)名 可以做参数名 可以做变量名 不可做类名 javascript _(a) {// 函数名 console.log(a); }, test(_) {// 参数名 console.log(_); }, cons
阅读全文