前端面试
文章平均质量分 83
huohuoit
这个作者很懒,什么都没留下…
展开
-
(七)不只是 huohuo 的 Vue 面试题
终于来到了框架部分,我们所熟悉的前端框架的底层都是 JS,所以我们更应该关注的是框架的思想原理及源码设计。基本的使用部分,推荐详看官方文档。因为时间和精力优先,这里暂时只给出文章整体脉络,后续慢慢补充完整。如何理解前端渲染把数据填充到HTML标签中:模板 + 数据→前端渲染→静态HTML内容more如何理解响应式 ① html5中的响应式:屏幕尺寸的变化导致样式的变化 ② 数据的响应式:数据的变化导致页面内容的变化什么是双向数据绑定当数据发生变化的时候,视图...原创 2021-08-10 15:18:22 · 262 阅读 · 3 评论 -
(六)不只是 huohuo 的 JS 面试题-续
JS 的内容实在太多太多了,上一篇也写了挺久了,两万多字对于一篇博客来说有些太长了,所以开了这篇续篇。但是目前主要精力不会着手于这篇文章,因为实在太忙了,最近还有一些面试需要准备,框架和算法都还没好好复习到。所以这篇暂时先列出一些主题内容,过段时间再来好好整理啦! ...原创 2021-08-08 16:25:35 · 207 阅读 · 0 评论 -
(五)不只是 huohuo 的 JS 面试题
写过最多的是 JS 相关的文章,做过最完整的是 JS 的思维导图,敲过最多的依然是 JS 代码,我觉得自己的 JS 还算可以了。写到这里的时候,我已经离职一周,参加了几次面试,大多数问题都能按自己的理解回答上来,同时,也让我意识到,那只是我以为的可以,只是没有遇到真正厉害的面试官罢了 ~写 JS 面试题之前,我纠结了好多次,我已经看过很多优秀的相关文章了,也写过很多各种各样的笔记了,还有没有必要再重复写。面完几次之后,有过正确解答,也有一知半解。有些问题让我意识到,这不是一次重复,而是一次重新认识,..原创 2021-07-26 15:46:02 · 691 阅读 · 0 评论 -
(四)不只是 huohuo 的 CSS 面试题
终于到了 CSS 篇了,好像可以放松一些了,可能相比于前面两篇,你会觉得 CSS 要简单很多吧。不会吧不会吧,不会真有人觉得 CSS 简单吧?不知道你是否认同, CSS 是所有编程语言里最好玩的一门语言。但是我想你必须认同张鑫旭老师的神作《CSS世界》,从中你势必跟我一样会发现 CSS 是有多么的奇妙啊!由于个人职业规划上时间原因,我并未好好的读完这本神作,但是在这篇文章里,我一定会在读完后写下自己所有的理解,请保持期待哦!所以,关于这一篇,目前的结构是以核心面试题问答的形式展开 ~.原创 2021-07-13 14:21:43 · 332 阅读 · 0 评论 -
(三)不只是 huohuo 的 HTTP/TCP 面试题
在上一篇,我们讲了很多关于浏览器的问题,其中谈到了很多次 HTTP 、TCP 。那么,这一篇,我们就主要来讲讲关于 HTTP 的问题吧 ~原创 2021-07-04 20:45:15 · 305 阅读 · 0 评论 -
(二)不只是 huohuo 的 浏览器 面试题
按照网上习惯性的文章撰写路线,第二篇应该是 CSS,也确实,各种各样的标签,也是由CSS在背后默默地做属性支持。但是对于 HTML 的很多问题,跟浏览器的关系太大了,让我不禁想去好好看看 HTML 跟浏览器之间的那些事。另外,可能一提到前端,绝大多数人都会脱口而出“JavaScript”,不过我觉得 CSS 才是前端技术里最精彩绝伦的技术,所以后面我会对 CSS 做一个特殊处理,先让我先把浏览器相关面试题做一份梳理吧。...原创 2021-06-23 16:11:44 · 616 阅读 · 0 评论 -
(一)不只是 huohuo 的 HTML 面试题
这里我应该是有一些话想说的,可能一刹那的特殊情感未到,没想好到底要说哪些话,先占个坑~~~HTML部分并不是前端面试中的重点,在组件化流行的开发背景下,其中丰富的标签也似乎难以出现在我们手底敲打的代码中。似渐行渐远,也似自己还未触及到哪个壁垒,这里还是想在自己回顾的同时好好探究一番遇到的相关问题。同时,也是为了知识体系的完整性,就先从此篇开始。好吧,其实也因为我有点整洁完整强迫症哈哈哈~~~VScode 永远的神!也许我们习惯了脚手架,习惯了 template,但我们仍然不能忘了HTM..原创 2021-06-22 21:12:26 · 181 阅读 · 2 评论 -
2021前端精选文章总结
半年没有怎么在CSDN写新文章了,有很多话想讲在开头,但是想先放一放,我已经迫不及待想随着自己的面试复习计划更新自己认真看过的精彩文章了!!!接下来我会常常更新这篇博客记录的文章,作为自己深入复习和制作思维导图基础记录。加油吧,小伙子!(打基础都可以看看,但是我更推荐想深入理解的小伙伴看,此行的目的主要还是偏向理解原理啊。可能目前有点乱,但请谅解,没有太多时间来美化,我真的迫不及待把设定好的复习框架搞定了!让我开始吧!)这里我先记录一些暂未未整理优秀的博主和文章花神:https://juejin原创 2021-02-01 21:50:21 · 488 阅读 · 0 评论 -
Vue电商项目中遇到的一些问题
1、为什么vue组件有的写成export default,有什么用?声明一个vue,相当于 new Vue({}) 达到可复用的目的,也就是说,export default 相当于导出当前vue组件,在其它引入当前组件时可以使用当前组件中的方法和变量。2、export和 exportdefault的区别export可以导出多个命名模块,引入时(都用import)用大括号括起来 exportdefault只能导出一个默认模块,这个模块可匿名,引入的时候可以给这个模块取任意名字,且...原创 2020-07-29 22:09:57 · 1298 阅读 · 2 评论 -
Javascript数据结构与算法--读后总结(2)数组
1、访问元素要访问数组里特定位置的元素,可以用中括号传递数值位置,得到想知道的值或者赋新的值。 假如我们想输出数组arr里的所有元素,可以通过循环遍历数组,打印元素,如下所示: for (var i = 0; i < arr.length; i++) { console.log(arr[i]); }例子:求斐波那契数列的前20个数字。已知斐波那契数列中第一个数字是1, 第二个是2,从第三项开始,每一项都等于前两项之和:斐波那契数列为:1...原创 2020-07-26 01:07:48 · 211 阅读 · 0 评论 -
Javascript数据结构与算法--读后总结(1)ES6
一、ES6部分1、函数的参数默认值 function sum(x = 1, y = 2, z = 3) { return x + y + z }; console.log(sum(4, 5)); //输出12由于我们没有传入参数z,它的值默认为3。因此,4 + 5 + 3 ==12。 在ES6之前,上面的函数我们只能写成这样: function sum(x, y, z) { if (x === undefined)原创 2020-07-25 23:19:13 · 137 阅读 · 0 评论 -
JS-数组去重的13种方法
一、数组去重首先全局定义一个数组,我们来对各个方法对比一下var arr1 = [11, 11, 1, 1, 2, 2, 'huo', 'huo'];1、双重for循环+新数组思想:建立一个新数组,并放入原数组的第一个元素。将原数组元素依次与新数组元素比较,元素不同就放入新数组。最后返回新数组,达到去重效果。 function darray2(arr) { let newArr = [arr[0]]; for (let i = 0; i <原创 2020-07-24 16:23:04 · 249 阅读 · 0 评论 -
前端面试----深信服面试题全概
这里结合了CSDN多位博主的深信服面试题,为了锻炼自己的答题能力和技术点理解,这里对博主的各个题目进行了自己的解答(最好用自己的理解自己的话解答),同时部分解答借鉴了博主的回答。记在word笔记的时候没有记录博主地址,但还是感谢分享,一起努力加油啊!一、HTML(1)常见的HTML块级元素和行内元素(2)HTML5的新标签有什么了解,详述一下表单的新标签(3)Image标签中alt和title有什么区别二、CSS(1)CSS盒子模型(IE盒子模型,标准盒子模型)(2)CSS元素居原创 2020-07-16 14:27:15 · 4387 阅读 · 5 评论 -
Vue经典面试题总结(2)进阶篇
1、描述组件渲染和更新过程渲染组件时,会通过 Vue.extend 方法构建子组件的构造函数,并进行实例化。最终手动调用 $mount() 进行挂载。更新组件时会进行 patchVnode 流程.核心就是diff算法2、组件中的 data为什么是一个函数?同一个组件被复用多次,会创建多个实例。这些实例用的是同一个构造函数,如果 data 是一个对象的 话。那么所有组件都共享了同一个对象。为了保证组件的数据独立性要求每个组件必须通过 data 函数 返回一个对象作为组件的状态。3、Vue中事件原创 2020-07-14 22:40:12 · 632 阅读 · 0 评论 -
多角度看Vue中常见的性能优化
Vue中常见的性能优化?(1)编码优化不要将所有的数据都放在data中,data中的数据都会增加getter和setter,会收集对应的 watcher vue 在 v-for 时给每项元素绑定事件需要用事件代理 SPA 页面采用keep-alive缓存组件 拆分组件( 提高复用性、增加代码的可维护性,减少不必要的渲染 ) v-if 当值为false时内部指令不会执行,具有阻断功能,很多情况下使用v-if替代v-show key 保证唯一性 ( 默认 vue 会采用就地复用策略 )...原创 2020-07-14 15:49:18 · 359 阅读 · 0 评论 -
字节跳动前端面试总结(持续更新)
一、HTML二、CSS三、JS1、setTimeOut()和setInterval()的区别都是用来处理延时和定时任务的函数setTimeOut()只延迟执行一次,且是在指定的毫秒数之后再调用函数。setInterval()是一段时间执行一次,可以执行多次,是在每隔指定的毫秒数循环调用函数,直到clearInterval把它清除掉。2、原型链继承让子类的原型对象(prototype)指向父类的实例,当子类实例找不到对应的属性和方法时,就会往它的原型对象,也就是父类实例上找,从..原创 2020-06-24 20:19:58 · 2448 阅读 · 0 评论 -
从0手写Promise(一步步深刻理解)
一、基础知识准备1、函数对象与实例对象函数对象:将函数作为对象使用时,简称为函数对象实例对象:new函数产生的对象,简称为对象function Fn(){ //Fn函数}const fn = new Fn() //Fn是构造函数 fn是实例对象(对象)console.log(Fn.prototype) //Fn是函数对象//记忆:Fn放在,括号左边是函数,点的左边是对象Fn.bind({}) //只有函数对象才有 call()、apply()、bi原创 2020-06-14 01:52:51 · 335 阅读 · 0 评论 -
V8垃圾回收机制的理解
一、为什么要有垃圾回收在C语言和C++语言中,我们如果想要开辟一块堆内存的话,需要先计算需要内存的大小,然后自己通过malloc函数去手动分配,在用完之后,还要时刻记得用free函数去清理释放,否则这块内存就会被永久占用,造成内存泄露。但是我们在写JavaScript的时候,却没有这个过程,因为人家已经替我们封装好了,V8引擎会根据你当前定义对象的大小去自动申请分配内存。不需要手动管理内存,所以自然要有垃圾回收,只分配不回收,内存容易被占满。垃圾回收优点:不需要我们去管理内存,把更多的精原创 2020-06-13 01:29:20 · 216 阅读 · 0 评论 -
ES6-promise(阮一峰ES6读后总结)
一、Promise的含义Promise是异步编程的一种解决方案,语法上来说是一个对象,从它可以获取异步操作的消息。Promise 提供统一的 API,各种异步操作都可以用同样的方法进行处理,使得控制异步操作更加容易 。Promise对象的两个特点:1、对象的状态不受外界影响Promise对象代表一个异步操作,有三种状态:pending(进行中)、fulfilled(已成功)和rejected(已失败) 只有异步操作的结果,可以决定当前是哪一种状态,任何其他操作都无法改变这个状态2、.原创 2020-06-12 18:34:31 · 1334 阅读 · 2 评论 -
JS-详细的防抖和节流
1、防抖和节流 防抖 节流 概念 短时间频繁触发同一事件,只会执行一次函数 函数每隔一段时间只会执行一次 实现原理 设置一个计时器,约定在XX毫秒后再触发事件处理,每次触发事件都会重新设置计时器,直到XX毫秒内无第二次操作 设置一个计时器,约定XX毫秒后执行事件,如果时间到了,就执行函数,并重置计时器 应用场景 搜索框/滚动条的监听事件处理等。如果不做防抖,每输入一个字/滚动屏幕,都会触发事件处理,造成性能浪费 窗口调整,页面滚动,抢购疯狂..原创 2020-06-11 23:38:59 · 645 阅读 · 0 评论 -
JS-函数进阶笔记二次总结
一、函数的定义和调用 1、函数的定义方式 (1)函数声明方式 function 关键字 (命名函数) (2)函数表达式 (匿名函数) (3)new Function() function fn(){}var fn = function(){}var fn = new Function('参数1','参数2'..., '函数体')var f = new Function('a', 'b', 'console.log(a + b)'); f(1, 2); Functio原创 2020-06-10 13:49:12 · 291 阅读 · 0 评论 -
JS-构造函数和原型(constructor、__proto__、prototype)
一、构造函数和原型 1、概述在 ES6之前 ,对象不是基于类创建的,而是用一种称为构建函数的特殊函数来定义对象和它们的特征。 创建对象可以通过以下三种方式: 1. 对象字面量 2. new Object() 3. 自定义构造函数2、构造函数构造函数是一种特殊的函数,主要用来初始化对象,即为对象成员变量赋初始值,它总与 new 一起使用。我 们可以把对象中一些公共的属性和方法抽取出来,然后封装到这个函数里面。 (1)在 JS 中,使用构造函数时要注意以下两点.原创 2020-06-09 23:26:47 · 876 阅读 · 0 评论 -
2021Vue经典面试题总结(1)
一、基础 1.父子组件传值(1)父传子父组件通过属性将值传递给子组件,子组件内部通过props接收传递过来的值<menu-item title="来自父组件的数据"></menu-item><menu-item :title="title"></menu-item>Vue.component('menu-item', { props: ['title'], template: '<div>{{ t...原创 2020-05-31 23:25:25 · 1095 阅读 · 0 评论