随笔分类 -  javascript

js相关
摘要:不考虑正则、函数等奇怪类型的拷贝,满足大多数深度拷贝需求定制需求如下:1、循环引用2、Symbol 类型拷贝 function deepClone(val,map = new WeakMap()){ if(val null || typeof val !=='object') return val; 阅读全文
posted @ 2022-06-28 08:40 下一秒钟已经不同 阅读(187) 评论(0) 推荐(0) 编辑
摘要:bfs利用队列实现,循环中做的是push => shift => push => shift dfs利用栈实现,循环中做的是push => pop => push => pop 刚刚好,中间仅仅差了一个数组方法: function bfs(target, id) { const quene = [. 阅读全文
posted @ 2022-06-23 09:16 下一秒钟已经不同 阅读(50) 评论(0) 推荐(0) 编辑
摘要:大概思路是,用正则替换掉关键词。 let panter = new RegExp(关键词, 'g') 该行字符串.replace(panter, '<b style="color: #2D7BFF">' + 关键词 + '</b>') 阅读全文
posted @ 2022-06-17 10:07 下一秒钟已经不同 阅读(17) 评论(0) 推荐(0) 编辑
摘要:Promise._race = promises => new Promise((resolve, reject) => { promises.forEach(promise => { promise.then(resolve, reject) }) }) 阅读全文
posted @ 2022-06-16 10:54 下一秒钟已经不同 阅读(38) 评论(0) 推荐(0) 编辑
摘要:时间复杂度为O(n): 其他遍历 function convert(list) { const res = [] const map = list.reduce((res, v) => (res[v.id] = v, res), {}) for (const item of list) { if ( 阅读全文
posted @ 2022-06-15 15:54 下一秒钟已经不同 阅读(288) 评论(0) 推荐(0) 编辑
摘要:思路应该是对 URL的组成部分 分别进行校验 protocol domain name port path (不用校验) params anchor (不用校验) 代码: 1、使用组成部分判断 const isUrl = urlStr => { try { const { href, origin, 阅读全文
posted @ 2022-06-13 11:03 下一秒钟已经不同 阅读(44) 评论(0) 推荐(0) 编辑
摘要:function sum(arr, target) { const res = [] for (let i = 0; i < arr.length; i++){ const a = target - arr[i] const index = arr.indexOf(a,i) if (index>=0 阅读全文
posted @ 2022-06-10 08:50 下一秒钟已经不同 阅读(27) 评论(0) 推荐(0) 编辑
摘要:从最终渲染的 DOM 来看,这两者都是链接,都是 <a> 标签, 区别是:<Link> 是 react-router 里实现路由跳转的链接,一般配合 <Route> 使用,react-router 接管了其默认的链接跳转行为,区别于传统的页面跳转,<Link> 的“跳转”行为只会触发相匹配的 <Ro 阅读全文
posted @ 2022-06-09 16:32 下一秒钟已经不同 阅读(669) 评论(0) 推荐(0) 编辑
摘要:功能要求: add(1); // 1 add(1)(2); // 3 add(1)(2)(3); // 6 add(1)(2, 3); // 6 add(1, 2)(3); // 6 add(1, 2, 3); // 6 解答: 普通实现: function add(){ let args = [. 阅读全文
posted @ 2022-06-08 09:54 下一秒钟已经不同 阅读(248) 评论(0) 推荐(0) 编辑
摘要:变量生命周期:声明(作用域注册一个变量)、初始化(分配内存,初始化为undefined)、赋值 var:遇到有var的作用域,在任何语句执行前都已经完成了声明和初始化,也就是变量提升而且拿到undefined的原因由来 function: 声明、初始化、赋值一开始就全部完成,所以函数的变量提升优先级 阅读全文
posted @ 2022-06-07 10:21 下一秒钟已经不同 阅读(102) 评论(0) 推荐(0) 编辑
摘要:function zeroMove(array) { let len = array.length; let j = 0; for(let i=0;i<len-j;i++){ if(array[i] 0){ array.push(0); array.splice(i,1); i --; j ++; 阅读全文
posted @ 2022-06-06 09:07 下一秒钟已经不同 阅读(94) 评论(0) 推荐(0) 编辑
摘要:[...Array(10000).keys()].filter((x) => { return x.toString().length > 1 && x Number(x.toString().split('').reverse().join('')) }) 阅读全文
posted @ 2022-06-02 09:24 下一秒钟已经不同 阅读(31) 评论(0) 推荐(0) 编辑
摘要:一、Promise概念 Promise是JS异步编程中的重要概念,异步抽象处理对象,是目前比较流行Javascript异步编程解决方案之一。Promise.all()接受一个由promise任务组成的数组,可以同时处理多个promise任务,当所有的任务都执行完成时,Promise.all()返回r 阅读全文
posted @ 2022-06-01 10:01 下一秒钟已经不同 阅读(1813) 评论(0) 推荐(0) 编辑
摘要:function rotate(arr, k) { const len = arr.length const step = k % len return arr.slice(-step).concat(arr.slice(0, len - step)) } // rotate([1, 2, 3, 4 阅读全文
posted @ 2022-05-30 11:24 下一秒钟已经不同 阅读(15) 评论(0) 推荐(0) 编辑
摘要:题:输出下列程序打印? // example 1var a={}, b='123', c=123; a[b]='b';a[c]='c'; console.log(a[b]); // example 2var a={}, b=Symbol('123'), c=Symbol('123'); a[b]=' 阅读全文
posted @ 2022-05-27 09:54 下一秒钟已经不同 阅读(420) 评论(0) 推荐(0) 编辑
摘要:存储模式: Chrome 浏览器JS引擎 V8中,数组有两种存储模式, 一种是类似C语言中的线性结构存储(索引值连续,且都是正整数的情况下), 一种是采用Hash结构存储(索引值为负数,数组稀疏,间隔比较大)。 读取方式: javaScript 没有真正意义上的数组,所有的数组其实是对象,其“索引” 阅读全文
posted @ 2022-05-26 11:28 下一秒钟已经不同 阅读(209) 评论(0) 推荐(0) 编辑
摘要:<b id="count"></b> <button onclick="increase()">+</button> <button onclick="decrease()">-</button> const data = { count: 0 }; const proxy = new Proxy( 阅读全文
posted @ 2022-05-25 09:07 下一秒钟已经不同 阅读(157) 评论(0) 推荐(0) 编辑
摘要:1. // 因为 T 的 length 是一定的,所以在循环S的的时候 ,循环当前项 i 后面至少还有 T.length 个元素 const find = (S, T) => { if (S.length < T.length) return -1; for (let i = 0; i <= S.l 阅读全文
posted @ 2022-05-23 14:38 下一秒钟已经不同 阅读(210) 评论(0) 推荐(0) 编辑
摘要:1. function processString (s) { var arr = s.split(''); var new_arr = arr.map((item) => { return item item.toUpperCase() ? item.toLowerCase() : item.to 阅读全文
posted @ 2022-05-19 10:27 下一秒钟已经不同 阅读(87) 评论(0) 推荐(0) 编辑
摘要:ES6转ES5分为以下两种情况1.语法转换ES6语法通过babel等工具为ES5语法,本质是将ES6语法转AST(抽象语法数——对编程语言编写的程序的一种描述)再将AST转为ES5语法代码;例如:let,const转换为var,箭头函数转换为function函数声明等2.API转换采用babel-p 阅读全文
posted @ 2022-05-18 09:35 下一秒钟已经不同 阅读(271) 评论(0) 推荐(0) 编辑

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