strCur)) { return str.slice(0, index); } } index++; } return str; }; 参考:前端手写面试题详细解答...手写常见排序 图片 冒泡排序 冒泡排序的原理如下,从第一个元素开始,把当前元素和下一个索引元素进行比较。...__proto__; } } 手写 Promise.then then 方法返回一个新的 promise 实例,为了在 promise 状态发生变化时(resolve / reject 被调用时)再执行...events.set(type, handler[0]); } } else { return this; } } }; 实现具体过程和思路见实现event 手写深度比较...所以 require 和 module.exports 并没有什么黑魔法,就只是运行并获取目标文件的值,然后加入缓存,用的时候拿出来用就行 手写实现一个require const path = require
前言 我们在面试的时候,经常会被面试官问到几个手写代码的问题。手写一个数组去重复,深拷贝,数组拍平等等。...有些小伙伴面试之前准备了,但是在编写的时候还是会忘掉,本文总结了一个如何应对手写代码的大纲,前面是一些基础内容,但是也希望能帮助到你,都会就当复习一遍,嘿嘿。 1....起名字与具体功能考虑 起名字 手写函数的时候,我每次给参数或者函数起名字都要犹豫那么几秒。面试官还以为我不会写嘞!...新变量与返回值 看完一道手写面试题,可以先看下是否需要声明新变量,需要返回的结果和结果类型等。...,一些函数并没有全部列全,但是大家有时间按照大纲复习一遍,再去看一些常考的手写代码问题,个人感觉能好记而且清晰了很多,希望本文能对大家有所帮助。
fn'); context[fn] = this; const res = context[fn](...args); delete context[fn]; return res;}参考:前端手写面试题详细解答实现发布...使用 let 块级作用域for (let i = 0; i < 5; i++) { setTimeout(function() { console.log(i); }, i * 1000);}手写常见排序图片冒泡排序冒泡排序的原理如下...bst.add({age: 10})bst.add({age: 8})bst.add({age:19})bst.add({age:20})bst.add({age: 5})console.log(bst)手写...5, 6, 7, 8, 9, 10, 11, 12, 13, 14];const resArr = getTenNum(testArray, 14);值得一提的是操作数组的时候使用交换法 这种思路在算法里面很常见最终版
obj.name = {n:200}; // 数据变了 需要更新视图 深度监控// obj.name.n = 100;obj.push(123);obj.push(456);console.log(obj);手写常见排序图片冒泡排序冒泡排序的原理如下...5, 6, 7, 8, 9, 10, 11, 12, 13, 14];const resArr = getTenNum(testArray, 14);值得一提的是操作数组的时候使用交换法 这种思路在算法里面很常见最终版
= s.slice(left, right + 1); max = Math.max(max, lr.length); } right++; } return max;};手写深度比较
面试常考算法之区间问题 区间问题在面试及笔试中经常遇到,今天总结两个常见问题,那就是区间的并与交操作。...算法思路:我们需要区分有交集与没有交集情况。 现有如下两个区间求交集。
手写简化版:// func是用户传入需要防抖的函数// wait是等待时间const debounce = (func, wait = 50) => { // 缓存一个定时器id let timer...连续输入文字后发送 AJAX 请求进行验证,验证一次就好按钮提交场景:防止多次提交按钮,只执行最后提交的一次服务端验证场景:表单验证需要服务端配合,只执行一段连续的输入事件的最后一次,还有搜索联想词功能类似手写节流函数函数节流是指规定一个单位时间...所以 require 和 module.exports 并没有什么黑魔法,就只是运行并获取目标文件的值,然后加入缓存,用的时候拿出来用就行手写实现一个requireconst path = require
手写类型判断函数function getType(value) { // 判断数据是 null 的情况 if (value === null) { return value + ""; }...所以 require 和 module.exports 并没有什么黑魔法,就只是运行并获取目标文件的值,然后加入缓存,用的时候拿出来用就行手写实现一个requireconst path = require.../test2.js');console.log(json);console.log(test2);参考:前端手写面试题详细解答实现forEach方法Array.prototype.myForEach =...了解了属性和方法之后,根据 AJAX 的步骤,手写最简单的 GET 请求。...+ "]"); } result = eval("context.fn(" + args + ")"); } delete context.fn; return result;};手写
图片像dom的拖拽,如果用消抖的话,就会出现卡顿的感觉,因为只在停止的时候执行了一次,这个时候就应该用节流,在一定时间内多次执行,会流畅很多手写简版使用时间戳的节流函数会在第一次触发事件时立即执行,以后每过...(hash) } } new HashRouter('red', (color) => { box.style.background = color })参考:前端手写面试题详细解答实现...LRU 缓存算法是一个非常经典的算法,在很多面试中经常问道,不仅仅包括前端面试LRU 英文全称是 Least Recently Used,英译过来就是” 最近最少使用 “的意思。...LRU 是一种常用的页面置换算法,选择最近最久未使用的页面予以淘汰。...这一整个过程就可以称之为 LRU 算法图片上图就很好的解释了 LRU 算法在干嘛了,其实非常简单,无非就是我们往内存里面添加或者删除元素的时候,遵循最近最少使用原则使用场景LRU 算法使用的场景非常多,
手写简化版:// 防抖函数const debounce = (fn, delay) => { let timer = null; return (...args) => { clearTimeout
这种方法以深度 depth 优先为策略,从根节点开始一直遍历到某个叶子节点,然后回到根节点,在遍历另外一个分支。
PHP面试中变量作用域是面试中常常出现的问题,也是必考的问题,下面就给大姐讲解一下在面试中注意的点: # living example one $A="Hello "; functionprint_A(
链表存储有序的元素集合,但不同于数组,链表中每个元素在内存中并不是连续放置的。每个元素由一个存储元素本身的节点和一个指向下一个元素的节点(也称为指针或链接)组成...
这种创建方式对应就是ThreadPoolExecutor构造参数中的threadFactory参数,使用工厂对象提供的创建方式
编程导航开源仓库:https://github.com/liyupi/code-nav 跪求一个 star ⭐️ 大家好,我是鱼二,今天分享一份非常不错的算法数据结构学习资源。...图解算法数据结构,是 Krahets 同学在 LeetCode 平台上发布的一本小书,可免费在线阅读。 [tujie.png] 让我们打开这本书,页面左侧是目录,右侧是详细的内容。...在书的开头就给大家列举了面试常考的算法题对应的算法和数据结构,大家可以选择自己要学的知识点挑选题目练习。...[在线阅读] 这本书面向算法初学者和求职者设计,列举了面试常考的剑指 Offer 系列题解,并且分了多个专题讲解,比如常见的数据结构:数组、栈、队列、字符串、链表、树,还有常见的算法:动态规划、回溯算法...、查找算法、搜索算法、贪心算法、分治算法、位运算、双指针等等。
实际上在面试过程中,懂这些算法的基本思想和大概流程是远远不够的,那些面试官往往问的都是一些公司内部业务中的课题,往往要求你不仅要懂得这些算法的理论过程,而且要非常熟悉怎样使用它,什么场合用它,算法的优缺点...线性回归优点: 实现简单,计算简单; 缺点: 不能拟合非线性数据; KNN算法: KNN即最近邻算法,其主要过程为: 1....另外噪声和非相关性特征向量的存在会使K近邻算法的准确性减小。 近邻算法具有较强的一致性结果。随着数据趋于无限,算法保证错误率不会超过贝叶斯算法错误率的两倍。...k-means算法的优点: (1)k-means算法是解决聚类问题的一种经典算法,算法简单、快速。 ...),它是一种迭代的决策树算法,该算法由多棵决策树组成,所有树的输出结果累加起来就是最终答案。
if (this.handlers[type].length === 0) { delete this.handlers[type] } } } } 手写...clearTimeout(timeout) timeout = setTimeout(() => { fn.apply(this, arguments); }, time); } }; 防抖常应用于用户进行搜索输入节约请求资源...// 手写简化版 // 节流函数 const throttle = (fn, delay = 500) => { let flag = true; return (...args) => {...[a-zA-Z0-9_\-])+$/; return regx.test(email); } 手写 Promise.all 1) 核心思路 接收一个 Promise 实例的数组或具有 Iterator...pre1 = pre2; pre2 = current; current = pre1 + pre2; } return current; } 手写深度比较
作者:xpsilvester https://juejin.cn/post/6963167124881670152 还在害怕手写题吗,本文可以帮你扩展并巩固自己的JS基础,顺便搞定90%的手写题。...在工作中还可以对常用的需求进行手写实现,比如深拷贝、防抖节流等可以直接用于往后的项目中,提高项目开发效率。不说废话了,下面就直接上代码吧。...(var i=1; i<=5; i++) { (function (i) { setTimeout(() => console.log(i), 1000*i) })(i) } 18.手写一个...index)) })() } // 这里最好加上防抖处理 document.addEventListener('scroll', imgLazyLoad) 参考资料 高频 JavaScript 手写...初、中级前端应该要掌握的手写代码实现 22 道高频 JavaScript 手写 死磕 36 个 JS 手写题(搞懂后,提升真的大)
你是否有过这种体会:看别人的代码,当时看得很明白了,但是,过段时间,自己却怎么都写不出来?这是怎么回事,可能我们也清楚。别人的思维你是无法拷贝的,形成之前不具备...
题目一 JDBC是什么? JDBC(Java DataBase Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为...
领取专属 10元无门槛券
手把手带您无忧上云