javascript
文章平均质量分 77
姚某某。
最苦不过熬清静,最难不过基本功~
展开
-
隔位连接,输入 '1, 2, 3, 5, 7, 8, 10' 输出 '1~3, 5, 7~8, 10'
输入 '1, 2, 3, 5, 7, 8, 10' 输出 '1~3, 5, 7~8, 10'const str = '1, 2, 3, 5, 7, 8, 10';// 格式化数据const trimStr = [...new Set(str.split(',').map(x => x.trim()))].join(',');let result = [];const change ...原创 2020-01-28 18:06:35 · 449 阅读 · 0 评论 -
实现一个简单的全局存储器
有的时候项目比较小的时候,我们不想使用vuex也不想使用Storage,那么我们就来自己造一个存储器。const name = Symbol('storeMock');const storeMock = Object({ [name]: {}, getItem(key) { return storeMock[name][key]; }, setItem(key, va...原创 2020-01-26 23:41:07 · 250 阅读 · 0 评论 -
模拟实现一个 localStorage
使用indexedDB 模拟实现一个基础的 localStorage进入正文之前我们先来了解一下,indexedDB的几个基础操作。IDBOpenDBRequest:IndexedDB API的接口使用特定的事件处理程序属性,提供对打开或删除数据库(使用IDBFactory.open和执行IDBFactory.deleteDatabase)的请求结果的访问。我们可以通过indexedDB...原创 2020-01-26 22:55:39 · 919 阅读 · 0 评论 -
pwa + history 模式 基础vue-cli3项目配置
1.history模式配置(设置mode:为history, base:基路径’nginx上配置的目录’)。2.开启pwa配置,同时附上vue-cli3脚手架build及dev配置。(vue.config,js)3.registerServiceWorker.js里面,配置内容更新时刷新页面。5.附上本地调试nginx配置。6.http axios拦截器。7.postcss 使用vw v...原创 2019-08-26 15:27:17 · 557 阅读 · 0 评论 -
对象的广度优先遍历和深度优先遍历,以及递归实现深拷贝。
废话不多说直接上代码,新建一个对象。let obj = { a: { A: { end: true }, B: 2, C: 3, }, b: 2, c: { c2: { cend: 3 } }, d: 4};广度优先遍历 深度优先遍历,先将obj转化成可迭代对象,在里面执行递归函数,将深层对象作为递归函数的参数传入。 * 对象的深拷贝也可...原创 2019-08-02 17:20:16 · 735 阅读 · 0 评论 -
es6中的箭头函数是否可以使用new实例化?与普通函数有什么区别?new的实质是什么?如何手动写一个new?
箭头函数、没有prototype、没有自己的this指向、不可以使用arguments、自然不可以new。 let fun = (a, s) => {}; console.dir(fun); // --- > 从原创 2019-08-21 10:51:20 · 7115 阅读 · 0 评论 -
节点增删实现无缝轮播
撸一波,节点增删实现无缝轮播。同步 github 地址 无缝轮播代码说话吧原创 2019-08-22 16:19:27 · 199 阅读 · 0 评论 -
普通遍历递归深拷贝,Array.from()深拷贝,split("")截取,Array.from()数组转化的性能对比。
new Array(10000000)量级下,普通遍历递归深拷贝,Array.from()深拷贝,split("")截取,Array.from()数组转化的性能对比。let String = new Array(10000000).fill(0).join('');console.time('Array.from');Array.from(String);console.timeEnd(...原创 2019-09-11 16:17:36 · 753 阅读 · 0 评论 -
js希尔排序注解
/** * 生成随机数组 * @param */ function randoms(num, max, min) { return Array.from({ length: num }).map(() => Math.ceil(Math.random() * (max - min) + min)); } let num1 = randoms(3...原创 2019-09-18 18:01:21 · 104 阅读 · 0 评论 -
简述 Vue的双向数据绑定( MVVM 实现了什么,以及其diff算法所运行的位置 )。
MVVM 实现了什么。 View(dom)原创 2019-08-16 10:32:30 · 453 阅读 · 0 评论 -
模拟实现一个深拷贝,并考虑对象相互引用以及 Symbol 拷贝的情况
对于 symbol 通过查看文档可以知晓:当使用 JSON.strIngify() 时以 symbol 值作为键的属性会被完全忽略,Symbols 在 for...in 迭代中不可枚举。另外,Object.getOwnPropertyNames() 不会返回 symbol 对象的属性,但是你能使用 Object.getOwnPropertySymbols() 得到它们。因此,要实现一个深拷贝,并...原创 2019-09-20 11:58:08 · 816 阅读 · 0 评论 -
反转链表,每 k 个节点反转一次,不足 k 就保持原有顺序
// 反转链表,每 k 个节点反转一次,不足 k 就保持原有顺序// 构建链表function list(...val) { let obj = val.reverse().map((res, i) => Object.assign({}, { [i]: new Node(res) })); for (let item in obj) { if (item...原创 2019-09-20 18:34:10 · 335 阅读 · 0 评论