随笔分类 -  前端技术栈 / JavaScript

摘要:自定义Snippets常用代码片段提高开发效率 日常搬砖过程中,有很多代码是重复的 对于这些代码,可以考虑放进工具类,或者安装snippets插件,或者干脆找以前的代码Ctrl+CV 插件市场里每种框架和语言对应的snippets都有很多,但不一定符合自己的编码习惯 Ctrl+CV就操作链路的长度和 阅读全文
posted @ 2024-12-19 09:15 IslandZzzz 阅读(20) 评论(0) 推荐(0) 编辑
摘要:关于nodeType 只读属性 Node.nodeType 表示的是该节点的类型。 nodeType枚举 场景 深复制时,判断对象类型的nodeType是1, 则表明该对象是dom类型 if ((typeof sourceObj[key] 'object') && sourceObj[key].no 阅读全文
posted @ 2022-07-28 08:32 IslandZzzz 阅读(117) 评论(0) 推荐(0) 编辑
摘要:描述 Write a function that reverses a string. The input string is given as an array of characters s. You must do this by modifying the input array in-pl 阅读全文
posted @ 2022-07-22 15:31 IslandZzzz 阅读(12) 评论(0) 推荐(0) 编辑
摘要:描述 A phrase is a palindrome if, after converting all uppercase letters into lowercase letters and removing all non-alphanumeric characters, it reads t 阅读全文
posted @ 2022-07-22 15:23 IslandZzzz 阅读(15) 评论(0) 推荐(0) 编辑
摘要:' 1-a, 2-c,. 3-v#$% '.replace(/[^A-Za-z0-9]/g,'') // '1a2c3v' 阅读全文
posted @ 2022-07-22 15:16 IslandZzzz 阅读(224) 评论(0) 推荐(0) 编辑
摘要:当整个页面及所有依赖资源如样式表和图片都已完成加载时,将触发load事件。 它与DOMContentLoaded不同,后者只要页面 DOM 加载完成就触发,无需等待依赖资源的加载。 阅读全文
posted @ 2022-06-30 11:17 IslandZzzz 阅读(22) 评论(0) 推荐(0) 编辑
摘要:1 数组实现 维护一个数组,总是记录无重复子串; 维护一个变量,总是记录当前无重复子串的长度中较长的那个 有重复,就删除当前记录重复子串中导致重复的部分子串0~start。 每次遍历在记录长度时,和当前记录值比较,取较大的那个。 最终记录的是最长子串长度 const lengthOfLongestS 阅读全文
posted @ 2022-06-29 16:28 IslandZzzz 阅读(43) 评论(0) 推荐(0) 编辑
摘要:// 给一个数组和一个值,获取数组元素之和为这个值的组合 function getIndex(arr,v){ if(!Array.isArray(arr)){ throw 'TypeError' } const map = arr.reduce((total, cur, index) => Obje 阅读全文
posted @ 2022-06-28 18:49 IslandZzzz 阅读(20) 评论(0) 推荐(0) 编辑
摘要:const isSortable = v => { if (!Array.isArray(v) || v.length < 2) { throw 'Not an array or length less than 1' } } /** * 冒泡 * 相邻比较,第一层表示趟数,第二层表示当前趟需要比较 阅读全文
posted @ 2022-06-28 16:51 IslandZzzz 阅读(23) 评论(0) 推荐(0) 编辑
摘要:CSS 可继承属性与不可继承属性 一、无继承性的属性 display:规定元素应该生成的框的类型 文本属性: ● vertical-align:垂直文本对齐 ● text-decoration:规定添加到文本的装饰 ● text-shadow:文本阴影效果 ● white-space:空白符的处理 阅读全文
posted @ 2022-06-25 20:59 IslandZzzz 阅读(176) 评论(0) 推荐(0) 编辑
摘要:继承的目的是什么?结果是什么? 子类继承父类,子类实例拥有和父类实例的属性 父类实例的属性来自于哪里? 构造函数 原型对象 因此继承的实现应该做到以下两件事情 继承父类构造函数设置的属性: 借用父类构造函数使用apply/call绑定this为子类实例,使得子类实例具有父类实例相同属性 继承父类的原 阅读全文
posted @ 2022-06-22 15:47 IslandZzzz 阅读(147) 评论(0) 推荐(0) 编辑
摘要:抽象比较 == 如果两边类型不同,会做隐式类型转换再判断 严格比较 如果两边类型不同,直接返回false Object.is 一般情况下结果和 相同,但是对+0,-0和NaN做了判断,Object.is认为+0和-0不相等,而NaN和NaN是相等的,这一点和严格相等不一样 阅读全文
posted @ 2022-06-21 17:18 IslandZzzz 阅读(31) 评论(0) 推荐(0) 编辑
摘要:(1)块级作用域:块作用域由 { }包括,let和const具有块级作用域,var不存在块级作用域。块级作用域解决了ES5中的两个问题: 内层变量可能覆盖外层变量 用来计数的循环变量泄露为全局变量 (2)变量提升:var存在变量提升,let和const不存在变量提升,即在变量只能在声明之后使用,否在 阅读全文
posted @ 2022-06-21 16:34 IslandZzzz 阅读(76) 评论(0) 推荐(0) 编辑
摘要:Map Map是JavaScript的一种数据结构,主要用于有序保存键值对,任何值都可以作为一个键或者值。 Map实现了iterator接口,遵循可迭代协议 1 特点 有序插入/输出 任意值都可以作为键 2 key 键的比较基于sameValueZero算法 在作为键的时候,NaN与NaN是相等的 阅读全文
posted @ 2022-06-21 16:07 IslandZzzz 阅读(390) 评论(1) 推荐(0) 编辑
摘要:setTimeout 模拟实现 setInterval js单线程,在线程占用时间较长的情况下,setInterval可能会向任务队列里添加很多宏任务 这些宏任务在线程空下来的时候,会依次执行,而不会间隔执行,导致失效 所以使用setTimeout+递归来模拟,只有前一次任务执行了之后,才添加下一次 阅读全文
posted @ 2022-06-20 01:06 IslandZzzz 阅读(349) 评论(0) 推荐(0) 编辑
摘要:for (var index = 1; index < 5; index++) { ((i) => { setTimeout(() => { // console.log(i); }, 1000 * i); })(index) } for (let index = 1; index < 5; ind 阅读全文
posted @ 2022-06-19 17:01 IslandZzzz 阅读(371) 评论(0) 推荐(0) 编辑
摘要:// 红黄绿: 使用异步编程方案, promise, async await等都行 // 循环打印: 一轮打印完了以后递归重复这一过程 const taskRunner = (light, timeout) => { return new Promise((resolve) => { setTime 阅读全文
posted @ 2022-06-19 16:53 IslandZzzz 阅读(374) 评论(0) 推荐(0) 编辑
摘要:先找到根(父)节点,然后根据根节点的id和数组元素的pid找到对应父子关系 重复上一步骤 const getTree = (root, list) => { if(!Array.isArray(list)) throw 'list must be Array' root = root || list 阅读全文
posted @ 2022-06-19 16:41 IslandZzzz 阅读(123) 评论(0) 推荐(0) 编辑
摘要:js draggable 拖拽效果 drag 拖拽中 dragstart 开始拖拽 dragover 拖拽悬浮时触发 dragenter 拖入目标节点 dragleave 离开源节点 drop 落进目标节点 event.dataTransfer.setData 拖拽时传输数据,可用于dragstar 阅读全文
posted @ 2022-06-17 15:57 IslandZzzz 阅读(860) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示