摘要: 背景:JavaScript是单线程语言,所有任务都要进入到主线程中进行执行。 一、任务队列 1. 所有任务分为同步和异步任务。同步任务是立即执行的任务,会进入到主线程中;异步任务通过任务队列(Event Queue)的形式进行协调。 2. 主线程执行完,会读取任务队列的异步任务并执行,这称为事件循环 阅读全文
posted @ 2021-08-08 22:16 惊沙男孩 阅读(75) 评论(0) 推荐(0) 编辑
摘要: 1. 1px问题的解决和原理 原理:物理像素(window.devicePixeRatio)和逻辑像素(css里面的像素=>设备独立像素=>iphone的2倍像素) 解决: 1.1 媒体查询,缺点:IOS8+才支持小数 1.2 transform:2倍屏0.5、3倍屏0.33 参考: 移动端 1px 阅读全文
posted @ 2021-07-19 21:56 惊沙男孩 阅读(88) 评论(0) 推荐(0) 编辑
摘要: 1. 深拷贝 1.1 WeakMap(ES6新增):提供了一种主动解决内存回收的方式,TODO,先不展开 属性:WeakMap.prototype.constructor 方法:set、delete、has、get 1.2 浅拷贝方法:Object.assign()、{...obj}、Array.p 阅读全文
posted @ 2021-06-30 08:58 惊沙男孩 阅读(57) 评论(0) 推荐(0) 编辑
摘要: 1. 长度最小的子数组 20210629晚 来源链接:leetCode:209 确定快慢指针移动的策略 点击查看代码 var minSubArrayLen = function(target, nums) { let slow = 0; let fast = 0; let sum = 0; let 阅读全文
posted @ 2021-06-30 00:03 惊沙男孩 阅读(41) 评论(0) 推荐(0) 编辑
摘要: 1. 各阶段用时可以从performence.timing里面查询 阅读全文
posted @ 2021-06-29 09:55 惊沙男孩 阅读(60) 评论(0) 推荐(0) 编辑
摘要: 1. 最长无重复子串的长度:滑动窗口思想 点击查看代码 // 滑动窗口思想 function findLongString(string = ''){ let box = '';// 1. 暂存子串 【窗口】 let lastIndex = 0;// 2. 最长子串时的结束索引 let longLe 阅读全文
posted @ 2021-06-27 21:42 惊沙男孩 阅读(34) 评论(0) 推荐(0) 编辑
摘要: 1. 利用Set对象 缺点:不能去重对象{} 点击查看代码 let arr = [2,3,1,5,34,90,34,23]; let b = [...new Set(arr)]; // let b = Array.from(new Set(arr)); console.log(b); 2. 利用re 阅读全文
posted @ 2021-06-27 18:20 惊沙男孩 阅读(63) 评论(0) 推荐(0) 编辑
摘要: 1. Promise常考题 概念:状态机,pending => 通过函数resolve转变为resolved;pending => 通过函数reject转变为rejected; 用法:a: p = new Promise((resolve,reject)=>{}); p.then((data)=>{ 阅读全文
posted @ 2021-06-18 15:29 惊沙男孩 阅读(58) 评论(0) 推荐(0) 编辑
摘要: 1. Object.assign();// 属性合并 2. Object.keys();// 返回以对象key为元素的数组 3. Object.freeze();// 冻结,防止对象被修改--不能修改,不可删除,不可写入,可读(枚举) 4. Object.seal();// 封闭,--不可修改,不可 阅读全文
posted @ 2021-06-16 15:45 惊沙男孩 阅读(138) 评论(0) 推荐(0) 编辑
摘要: 相同点 不同点 使用 slice 都可以截取数组,都是从左到右顺序截取 1.不会改变原数组 2.可以操作字符串 2.arg1<0 && arg2<0 && arg1<arg2,末尾为-1 3.左闭右开 4.第二个参数是下标 arr.slice(arg1,arg2); string.slice(arg 阅读全文
posted @ 2021-06-16 09:08 惊沙男孩 阅读(224) 评论(0) 推荐(0) 编辑