
前端面试准备
文章平均质量分 71
祥哥的说
精一技而绝天下。。。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
前端基本知识点查漏补缺
查漏补缺原创 2023-01-30 15:30:53 · 598 阅读 · 0 评论 -
JS基础-原型原型链和宏任务/微任务/事件机制
1、结果: 2、第一:首先区分浏览器端和服务器端的js模块化规范。1)浏览器端的js模块化规范:AMD 和 CMD2)服务器端的js模块化规范:CommonJS(注:由NodeJS实现)第二:浏览器端的js模块化规范分别由什么实现。1)AMD是由require.js实现的(记忆法,认为A是Async异步, 依赖前置,就是所有的依赖必须放在最前面)2)CMD是由sea.js实现的(依赖就近,所有依赖需要了再引入3、 熟悉使用new创建对象的原理:(1)新对象的隐式原型执向构造函数的显示原型B._prot原创 2022-05-31 23:42:16 · 445 阅读 · 0 评论 -
单页面SPA和多页面MPA应用的区别
单页面应用SPA多页面应用MPA原创 2021-03-08 17:25:12 · 519 阅读 · 0 评论 -
手撕前端题目
前端手撕代码汇总原创 2022-05-24 23:28:42 · 1197 阅读 · 0 评论 -
LeetCode
2. 两数相加给你两个非空 的链表,表示两个非负的整数。它们每位数字都是按照逆序的方式存储的,并且每个节点只能存储一位数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字 0 之外,这两个数都不会以 0开头。var addTwoNumbers = function(l1, l2) { // 1、创建虚拟头结点,用于返回结果处理 let l3 = new ListNode(); // 2、定义进位值,默...原创 2022-05-21 15:42:31 · 1514 阅读 · 0 评论 -
http及https相关内容补充
HTTP2.0不足:1、建立连接时间长(本质上是TCP的问题)2、队头阻塞问题(二进制分帧层,形成很多互相无依赖的数据包,由于单个数据包的丢失而造成的阻塞)TCP协议在收到数据包之后,这部分数据可能是乱序到达的,但是TCP必须将所有数据收集排序整合后给上层使用,如果其中某个包丢失了,就必须等待重传,从而出现某个丢包数据阻塞整个连接的数据使用。3、移动互联网领域表现不佳(弱网环境)HTTP3.0Http3.0是建立一个新的传输层协议QUIC上的HTTP新规范,QUIC协议底层是基于原创 2022-05-20 21:00:43 · 380 阅读 · 0 评论 -
全排列总结
46. 全排列解答过程:力扣https://leetcode.cn/problems/permutations/solution/chou-xiang-cheng-jue-ce-shu-yi-ge-pai-lie-jiu-xian//** * @param {number[]} nums * @return {number[][]} 递归+回溯思路1、每一位都有3种选择:1、2、3。2、每一次都做选择,展开出一棵空间树,如下图。3、利用约束条件「不能重复选」...原创 2022-05-20 18:22:20 · 413 阅读 · 0 评论 -
滑动窗口总结
滑动窗口是leetcode上的一大类题目,也是各大公司常见的面试题目,整理如下:参考文档:力扣【3】无重复字符的最长子串给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。尝试解题:不行,这种处理,实际上窗口长度没有变,适用窗口长度固定的题型,如643. 子数组最大平均数 Ivar lengthOfLongestSubstring = function(s) { let left=0, right = 0, maxlen = 0; let obj.原创 2022-05-20 10:46:59 · 235 阅读 · 0 评论 -
前端面试手撕题
FED1 事件委托请补全JavaScript代码,要求如下:1. 给"ul"标签添加点击事件2. 当点击某"li"标签时,该标签内容拼接"."符号。如:某"li"标签被点击时,该标签内容为".."注意:1. 必须使用DOM0级标准事件(onclick)<html> <head> <meta charset=utf-8> </head> <body> <ul>原创 2022-05-15 10:55:53 · 223 阅读 · 0 评论 -
待总结的前端知识点
1、多页应用和单页应用的区别多页面:每次页面刷新都会返回新HTML 优点:首屏时间快(只发送一个http请求,响应接受了,页面就能展示出来)SEO(搜索引擎排名)效果好,搜索引擎是识别html内容,根据内容排名的 缺点:页面切换慢:每次切换都需要发起一个http请求**单页面**只有一个首页,js感知到url变化后使用js把当前页面内容替换成新的,而不会每次跳转都请求新的html文件第一次进入页面的时候会请求一个html文件,刷新清除一下。切换到其他组件,此时路径也相应变化,但是并原创 2022-05-10 23:38:20 · 284 阅读 · 0 评论 -
设计模式相关内容
一、单例模式参考文档原创 2022-05-08 12:06:53 · 246 阅读 · 0 评论 -
【背包问题】
1、0-1背包问题有一个容量为 C 的背包,和一些物品。这些物品分别有两个属性,体积 w 和价值 v,每种物品的数量只有一个。要求用这个背包装下价值尽可能多的物品,求该最大价值,背包可以不被装满。假设物品的体积w[i]=[5,6,2,3,4],物品的价值v[i]=[6,12,5,6,6],背包容量C=10,求背包能装的最大价值。解题参考js解题代码funciton bag_0_1(w,v,C) { // 先对F[i][j]初始化第一行,然后根据遍历物品,根据状态转移函数计算。 // 把原创 2022-04-09 16:57:31 · 375 阅读 · 0 评论 -
【221. 最大正方形】
求解汇总:1、我们用 dp(i, j)表示以 (i, j) 为右下角,且只包含 1 的正方形的边长最大值。如果我们能计算出所有dp(i,j) 的值,那么其中的最大值即为矩阵中只包含 1 的正方形的边长最大值,其平方即为最大正方形的面积。var maximalSquare = function (matrix) { let max_len = 0; let dp = Array.from(Array(matrix.length), () => Array(matrix[.原创 2022-04-05 15:23:21 · 527 阅读 · 0 评论 -
排序算法-冒泡,快排
一、冒泡排序冒泡排序的核心:双重嵌套循环。第一层:冒出的趟数第二层:需要比较的元素个数var sun = [1,2,4,3];function bubblesort(arr){ let len = arr.length; for(let i=0; i<len-1; i++){ // 长度为len的数组,最后一个数自动归位,需要冒泡len-1次才能全部归位, for(let j=0; j<len-i; j++){ // 里面需要遍历哪些元素,和已经原创 2021-02-28 22:59:10 · 661 阅读 · 1 评论 -
二叉树、链表相关的前端面试题目
一、二叉树的最大深度function maxDepth( root ) { if(!root) { return 0; }else{ return Math.max(maxDepth(root.left), maxDepth(root.right)) + 1; }}在线验证二、操作给定的二叉树,将其变换为源二叉树的镜像/* * function TreeNode(x) { * this.val = x; * this.left原创 2021-02-28 17:32:05 · 527 阅读 · 0 评论 -
JS有关异步、事件机制、原型原型链、安全
7-3 promise的基本使用解答:根据then和catch的状态进行判断第一题:1,3第二题:1,2,3第三题:1,2解答:a: 返回一个promise对象b: 返回100解答:1、start2、a:1003、b:200注意c处返回的是rejected的状态,下面的回调内容就不再执行了解答:100-》400-》300-》200...原创 2021-02-22 11:06:32 · 248 阅读 · 0 评论 -
前端面试经典算法题
/* function TreeNode(x) { this.val = x; this.left = null; this.right = null;} */function Mirror(root){ if(root===null) { return; } if(root.left === null && root.right === null) { return; } let pTe.原创 2021-02-21 20:05:41 · 7145 阅读 · 0 评论 -
个人博客站点---完全开源---随用随取
最近接触到了next.js前后端同构框架,借此机会搭建了个人的博客站点,并进行了vercel部署,现已上线,欢迎fork学习交流~ 网站地址 : http://sunzhaoxiang.com/ 代码地址 : https://github.com/SUNNERCMS/sunnercms-nextJsBlog由于博客站点正在开发中,所有工程配置、功能添加、bug处理等,均会记录在github中,欢迎fork,在此基础上快速搭建属于自己的博客。有问题或疑问,可评论或私信~待办:vercel部署流原创 2020-10-28 12:33:04 · 546 阅读 · 0 评论 -
请编写一个JavaScript函数,实现清除数据中重复的元素
转载 2018-05-08 20:37:25 · 1135 阅读 · 0 评论 -
闭包中this的指代,以及四种函数调用中this的指代
说来惭愧,再讲一个故事吧。带着2年前端经验的我去面试,被闭包问住了,尴尬了整个面试气氛。第二次,OK,失败了总要知道为什么吧,于是闭包被我简单的攻略了。面试官问我闭包时,拿起笔就写了一个简易版的闭包。好啊,既然你知道闭包,那你说说在你写的这个闭包的这一段代码里,这里,这里,这里this分别是什么?啊啊啊啊,老天,Are you kidding me? Q:// (1)这里this指...转载 2018-07-15 20:58:24 · 1080 阅读 · 0 评论 -
CSS三栏布局——中间固定两边自适应宽度
CSS三栏布局——中间固定两边自适应宽度今天早上在阿当大侠的编写高质量前端代码群中与几位朋友一起探讨和学习了一种用div+css进行的三列(三栏)布局,而且是中间固定左右两边自适应宽度,听起来蛮有意思的。因为以前只是碰到过,左右两列固定而中间自适应的运用。于是思考一下马上敲起了键盘自己实战了一下,接着与大家一起测试,还是通过了各浏览器的考验,为了方便自己以后好查阅,也想让不知道的朋友一起学习一...转载 2018-07-27 11:28:00 · 2352 阅读 · 0 评论 -
元素浮动以及清除浮动的方法
浮动到底是什么?浮动核心就一句话:浮动元素会脱离文档流并向左/向右浮动,直到碰到父元素或者另一个浮动元素。请默念3次!浮动最初设计的目的并没那么多事儿,就只是用来实现文字环绕效果而已,如下所示: 文字环绕效果但是早期的前端开发者发现:浮动的元素可以设置宽高并且可以内联排列,是介于inline和block之间的一个神奇的存在,在inline-block出来之前,浮动大行其道。...转载 2018-07-27 15:08:26 · 2366 阅读 · 2 评论 -
css实现水平居中的几种方式
css实现水平居中的几种方式一、对于行内元素:text-align:center;二、对于确定宽度的块级元素:(1)margin和width实现水平居中常用(前提:已设置width值):margin-left:auto; margin-right:auto;(2)绝对定位和margin-left: -(宽度值/2)实现水平居中固定宽度块级元素水平居中,通过使用...转载 2018-07-27 20:37:44 · 711 阅读 · 0 评论 -
inline-block元素的空白间距解决方法---一网打进
如何解决inline-block元素的空白间距 inline-block有关于使用inline-block来代替float的讨论也蛮多的,最常说的就是使用inline-block来代替float进行布局,或者使用inline-block来实现元素的居中效果。前面《CSS3制作的分页导航》一文中就是使用的inline-block制作的居中效果,不过留下了一上问题,就是使用inline-b...转载 2018-07-27 20:40:18 · 179 阅读 · 0 评论 -
js事件循环机制
一、JS单线程、异步、同步概念 从上一篇说明vue nextTick的文章中,多次出现“事件循环”这个名词,简单说明了事件循环的步骤,以便理解nextTick的运行时机,这篇文章将更为详细的分析下事件循环。在此之前需要了解JS单线程,及由此产生的同步执行环境和异步执行环境。 众所周知,JS是单线程(如果一个线程删DOM,一个线程增DOM,浏览器傻逼了~所以只能单着了),虽然有webwo...转载 2018-08-14 17:39:13 · 19336 阅读 · 1 评论 -
new Object和Object.create创建新对象时到底干了啥
new Object和Object.create到底干了啥function Car () { this.color = "red";}Car.prototype.sayHi=function(){ console.log('你好')}<br data-filtered="filtered">var car =new Car();var car2 = Object...转载 2018-07-25 16:51:03 · 1601 阅读 · 0 评论 -
Object.create()和new object()和{}的区别
Object.create()介绍 Object.create(null) 创建的对象是一个空对象,在该对象上没有继承 Object.prototype 原型链上的属性或者方法,例如:toString(), hasOwnProperty()等方法Object.create()方法接受两个参数:Object.create(obj,propertiesObject) ;obj:一个对象,应该...转载 2018-07-25 15:53:11 · 8535 阅读 · 0 评论 -
vue的生命周期
如何解释vue的生命周期才能令面试官满意? 当面试官问:“谈谈你对vue的生命周期的理解”,听到这句话你是不是心里暗自窃喜:这也太容易了吧,不就是beforeCreate、created、beforeMount、mounted、beforeUpdate、updated、beforeDestroy、destroyed 这几个钩子函数么,创建=>挂载=>更新=>销毁,So easy...转载 2018-07-25 14:36:08 · 251 阅读 · 0 评论 -
酷狗前端笔试题目
酷狗java笔试题分享给大家,愿所有的人都能有一个满意的offer~ 单选题 1、在命中率极高的缓存设计中,时间复杂度最差的数据结构是( B )。 A. 数组 B. 链表 C. 树 D. 哈希表 2、某二叉树共有11个结点,其叶子结点只有2个。则该二叉树的深度最短可以是( B )(根结点在第1层)。 A. 4 B. 6 C. 8 D.10 3、html是上下文相关...转载 2018-05-12 15:08:14 · 3051 阅读 · 0 评论 -
酷狗web前端编程题---橙子
编程题:小明去买橙子,水果店只能提供整袋购买,有每袋6个和每袋8个的包装(包装不能拆分)。可是小明只想购买恰好n个橙子,并且尽量少的袋数方便携带。如果不能购买恰好n个橙子,小明将不会购买。请根据此实现一个程序,要求如下:输入一个整数n,表示小明想要买n(1<=n<=100)个橙子输出一个整数表示最少需要的袋数,如果不能恰好买n个橙子,则输出-1示例:输入20,输出3方法一:(c++)#...原创 2018-05-09 21:29:04 · 1754 阅读 · 0 评论 -
等间距效果
请用html和css实现以下效果(移动设备),要求①三个圆形icon大小为80px,固定不变,②被三个圆形icon划分的四个间距相等,③黑色背景需要占满移动设备的宽度<!doctype html><html lang="en"><head> <meta charset="UTF-8"> <title>等间距效果&a原创 2018-05-09 16:25:40 · 497 阅读 · 0 评论 -
用纯css实现某个元素的双边框效果
用纯css实现某个元素的双边框效果,边框大小都为5,如图方法一: background:green; border:5px solid red; outline:5px solid black;测试用例:<!doctype html><html lang="en"><head> <meta charset="UTF-8"> <ti原创 2018-05-09 11:41:53 · 5078 阅读 · 0 评论 -
进程与线程的概念、二者的关系与区别
进程:一个正在运行的程序就叫一个进程 比如说手机打开的一个应用就是一个进程多进程:多个程序同时运行 叫多进程 比如手机同时打开这多个程序 听着歌上着QQ线程:一个程序 或者说 一个进程 都会有一个 或多个线程 比如说听歌 你进应用之后一直在点击听歌 更换模式这些按钮 处理你点击按钮产生的作用的就是线程 你能看见的都是操作都是主线程在完成 你看不见的比如你虽然在听歌 但是歌曲也正在缓存这就是子线程在...转载 2018-04-20 15:20:07 · 507 阅读 · 0 评论 -
call和apply方法的异同
相信很多前端小伙伴们在写代码的时候应该都用过 call() 和 apply() 这两个方法,应该也对这两个方法有个基本的了解。但肯定也有些小伙伴对它们不是很熟悉,那这次就来探究一下这两个方法【基本作用】想要深入了解 call() 和 apply() 这两个方法,那么必须要先知道他们的基本作用:改变对象的执行上下文什么是执行上下文?我们在写一个方法的时候,总是会用到一个关键字this,而th...转载 2018-03-13 16:15:34 · 288 阅读 · 0 评论 -
如何实现浏览器内多个标签页之间的通信
题目点评本题主要考察数据存储的知识,数据存储有本地和服务器存储两种方式,对于前端开发来讲,只需要讲解用本地存储的方式来解决就好。当然也能知道服务器端的方式更好。本题的难易程度一般,只要能够说出思路就可以,至少说两种解决方法。 解题方法 方法一:使用localStorage使用localStorage.setItem(key,value);添加内容使用storage事件监听添加、修改、删除的动作 ...转载 2018-03-16 15:11:16 · 729 阅读 · 0 评论 -
前端面试题
前端面试题2018-03-08 333ywcgpk... 转自 慕容xiaolang修改微信分享:这是一份前端面试题,你可以用来面试潜在的候选人或者自测。摘抄自--[https://h5bp.github.io/Front-end-Developer-Interview-Questions/]通用你昨天或者这个星期学到了什么?你最近遇到的一个技术挑战是什么,你是怎么解决它的?请描述一下,你...转载 2018-03-08 19:05:14 · 705 阅读 · 0 评论 -
数组去重合并
function combine(){ let arr = [].concat.apply([], arguments); //合并操作:concat()返回的是连接后的新数组,此时并没有去重 return Array.from(new Set(arr)); //去重操作:new Set(),返回值是一个去重后新的Set对象,用Array.from()将对象转化为数组 ...原创 2018-05-18 21:45:33 · 2258 阅读 · 0 评论 -
Array.prototype.slice.apply(arguments)和Array.from(arguments)
题目描述函数 useArguments 可以接收 1 个及以上的参数。请实现函数 useArguments,返回所有调用参数相加后的结果。本题的测试参数全部为 Number 类型,不需考虑参数转换。示例1输入1, 2, 3, 4输出10解答:方法1.function useArguments() { var sum=0; for(var i=0;i<arguments.lengt...转载 2018-05-18 21:54:10 · 939 阅读 · 0 评论 -
sass是什么?它有哪些好处和坏处?
sass是css预处理器;优点:用一种专门的编程语言,为CSS增加了一些编程的特性,将CSS作为目标生成文件,然后开发者就只要使用这种语言进行编码工作。通俗的说,CSS预处理器用一种专门的编程语言,进行Web页面样式设计,然后再编译成正常的CSS文件,以供项目使用。CSS预处理器为CSS增加一些编程的特性,无需考虑浏览器的兼容性问题,例如你可以在CSS中使用变量、简单的逻辑程序、函数等等在编程语言...转载 2018-05-08 09:46:27 · 15710 阅读 · 1 评论 -
一篇文章彻底搞懂浅拷贝和深拷贝
强烈推荐30个原生JavaScript的demo,包括canvas时钟特效、自定义视频播放器、搜索栏快速匹配、fetch访问资源、console调试技巧等,先fork后学习,详见点击打开链接,欢迎点赞~~~谢谢,共同进步学习!【javascript】详解javaScript的深拷贝目录浅谈深拷贝和浅拷贝 深拷贝和浅拷贝的区别 为什么要使用深拷贝? 深拷贝的要求程度...转载 2018-07-16 16:36:32 · 52122 阅读 · 11 评论