前端面试
文章平均质量分 93
不定时更新前端面试题
iChangebaobao
菜鸟的前端进击之路
展开
-
[前端面试] CommonJs与ES Module的区别、Tree Shaking
ES6 module 特点:只能作为模块顶层的语句出现import 的模块名只能是字符串常量import binding 是 immutable的ES6模块依赖关系是确定的,和运行时的状态无关,可以进行可靠的静态分析,这就是tree-shaking的基础。下面引入的style.css模块,如果也使用Tree shaking,由于css文件没有导出任何模块,那么就有可能在打包的时候该引入模块就被摇晃掉了,导致bug。CommonJs 导出值是拷贝,可以修改导出的值,这在代码出错时,不好排查引起变量污染。转载 2022-04-15 15:06:45 · 896 阅读 · 0 评论 -
[搞定一面] 快速搞定一面~技术面
一、请问JS中 new 一个对象发生了什么?new 执行的函数,函数内部生成一个空对象 var obj = new Object();将函数内部的 this 默认指向obj var result = Person.call(obj);设置原型链,将obj的__proto__成员指向了Person函数对象的prototype成员对象obj.__proto__ = Person.prototype;判断函数Person的返回值类型,如果是值类型,返回obj。如果是引用类型,就返回这个引用类型的对原创 2021-02-23 12:01:05 · 741 阅读 · 2 评论 -
[前端面试]vue视图不更新情况
vue视图不更新情况转载 2020-12-09 11:15:06 · 169 阅读 · 0 评论 -
[Vue源码] Vue中v-model的实现原理及如何自定义v-model
1、Vue中v-model的实现原理组件 v-model 可以看成是 value+input 方法 的语法糖<el-checkbox :value="" @input=""></el-checkbox> <el-checkbox v-model="check"></el-checkbox>原理: 组件的 v-model 将默认转化成 value+inputconst VueTemplateCompiler = require('vue-templat原创 2020-10-29 11:42:59 · 891 阅读 · 0 评论 -
[Vue源码] Vue中事件绑定@click的原理
1、Vue中事件绑定的原理Vue 的事件绑定分为两种:一种是原生的事件绑定<div @click="fn()"></div>另一种是组件的事件绑定<my-component @click.native="fn" @click="fn1"></my- component>理解:1.原生 dom 事件的绑定,采用的是 addEventListener 实现2.组件绑定事件采用的是 $on 方法原理:事件的编译:let compiler =原创 2020-10-29 09:01:52 · 3011 阅读 · 0 评论 -
[Vue源码] Vue中组件中的data为什么必须为函数?
1、 Vue中组件中的data为什么必须为函数? function VueComponent(){} VueComponent.prototype.$options = { data:{name:'huahua'} } let vc1 = new VueComponent(); vc1.$options.data = 'hh'; let vc2 = new VueComponent(); console.log(vc2.$options.data);理解:同一个组件被复原创 2020-10-28 17:33:01 · 166 阅读 · 0 评论 -
[Vue源码] Vue中组件渲染和更新过程
一、Vue中组件渲染和更新过程理解:渲染组件时,会通过Vue.extend方法构建子组件的构造函数,并进行实例化,最后手动调用$mount()进行挂载。const fn=Vue.extend();const component=new fn();更新组件时,会进行patchVnode流程,其核心是diff 算法源码:src/core/vdom/create-component.jsexport function createComponent ( Ctor: Class<Compo原创 2020-10-28 17:03:00 · 568 阅读 · 0 评论 -
[Vue源码] Vue中diff算法原理
一、 Vue中diff算法原理理解:1.先同级比较,在比较子节点2.先判断一方有儿子一方没儿子的情况3.比较都有儿子的情况4.递归比较子节点图:1、从头开始比较,最后的节点为新增的节点(从尾节点插入)2、从头开始,发现节点不一致,又从尾节点源码:src/core/vdom/patch.jsconst oldCh = oldVnode.children // 老的儿子 const ch = vnode.children // 新的儿子 if (isUndef(vnode.text))原创 2020-10-28 12:11:23 · 488 阅读 · 0 评论 -
[Vue源码] Vue中模板编译原理
1、将 template 转化成 render 函数function baseCompile ( template: string, options: CompilerOptions ) { const ast = parse(template.trim(), options) // 1.将模板转化成ast语法树 if (options.optimize !== false) { // 2.优化树 optimize(ast, options) } const code = generat原创 2020-10-20 09:28:34 · 164 阅读 · 0 评论 -
[Vue源码] Vue中响应式数据的原理
vue2.0 响应式数据的原理Vue2.0在初始化数据时,会给data中的属性使用Object.defineProperty重新定义所有属性,当页面取到对应属性时,会进行依赖收集(收集当前组件的watcher)如果属性发生变化会通知相关依赖进行更新操作。Vue2.0源码:Object.defineProperty(obj, key, { enumerable: true, configurable: true, get: function reactiveGetter () { const原创 2020-10-10 18:13:06 · 200 阅读 · 0 评论 -
[JavaScript] 防抖与节流的区别及用法
一、防抖(debounce)含义:当调用动作过n豪秒后,才会执行该动作,若在这n毫秒内,又调用此动作,则将重新计算执行时间const debounce = (fn,waitTime)=>{ let timer=null; return function(){ clearTimeout(timeout) timeout=setTimeout(()=>{ //如果fn 没有返回一个函数,则 fn.apply 报错 fn.apply(this,arguments) //原创 2020-10-09 17:07:38 · 163 阅读 · 0 评论 -
[前端面试]JavaScript 发布订阅模式实现
来自迅雷前端的一道笔试题实现一个EventEmitter类,实现以下方法:1.emitter.on(name,fn) //订阅name事件,监听函数为fn,可多次订阅2.emitter.once(name,fn) //功能与on类似,但监听函数为一次性的,触发后自动移除3.emitter.emit(name,data1,data2,…,datan) //发布name事件,所有订阅该事件的监听函数被触发,data1,…,datan作为参数传给监听函数,若有多个函数,按照顺序执行4.emitter.r转载 2020-06-16 10:26:00 · 633 阅读 · 0 评论 -
[前端面试] 浅谈SPA、SEO、SSR
浅谈SPA、SEO、SSR前后端分离算是最近Web开发的大趋势了,目前已经有大量的公司使用了前后端分离的开发方式。那我们就来大概谈谈前后端分离开发中必须要了解和接触的几个概念:SPA、SEO和SSR。在谈这几个概念之前,先来聊聊我理解的前后端分离。一、我理解的前后端分离背景最开始接触Web前后端大概是一年多前,那个时候打算参加一个比赛,因为没人写后端和Web前端,所以就开始自己学,然后边学边做。另外当时我们的项目还有移动端,所以后端除了提供数据渲染Web前端的页面以外还得给移动端提供接口,实际上转载 2020-06-08 09:32:16 · 679 阅读 · 0 评论 -
[前端面试] 微信小程序相关面试题
https://mp.weixin.qq.com/s/s5OpbdMgjH-2gyV-b36QQA原创 2020-05-21 11:50:30 · 1760 阅读 · 0 评论 -
[前端面试]实战LeetCode - 前端面试必备二叉树算法
https://mp.weixin.qq.com/s/auLUlisGahUQQ1xL43-RVw原创 2020-04-03 10:42:47 · 468 阅读 · 0 评论 -
[前端面试]关于前端学习路线的一些建议(含面试自测题)
以下文章来源于小生方勤 ,作者小生方勤(公众号)前言最近常有朋友加我微信,而他们问的最多的问题就是 —— 前端技术现在如此繁杂,我到底应该如何学习。这个话题太大了,几句话回答不好;也由于这个问题确实困扰了很多前端开发人员,所以我也就着手系统的输出这篇文章。虽然这篇文章花了很长时间,肯定也有其局限性;希望各位不吝指出。入题我们俨然能感受到前端岗位现在已经发展成了最重要的研发岗位之一,所...原创 2020-03-22 15:46:46 · 594 阅读 · 0 评论 -
[前端面试]2020 前端面试 | 第一波面试题总结
原本链接:https://juejin.im/post/5e3d898cf265da5732551a56前言先介绍一下自己的情况吧内蒙古呼和浩特某大学毕业,专科,计算机多媒体专业毕业16年出来工作,工作经验四年,之前主要做平面相关,自己喜欢瞎折腾,从17年开始研究前端,然后公司内部转岗到开发部门工作,算下来前端经验也快三年之久。年底由于种种原因想换一份工作,但由于太忙,没认真搞简历...原创 2020-02-13 14:31:55 · 2404 阅读 · 0 评论 -
[前端面试]手写代码CSS & JS汇总
一、手写CSS两栏布局要求:垂直两栏,左边固定右边自适应。<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"&...转载 2020-02-08 23:15:12 · 389 阅读 · 0 评论 -
[前端面试] Vue的前端面试问题【持更】
本文会列举一些平时面试时问到的问题和答案,并说明面试官在当时问到这个问题时所期望对方的回答:vue生命周期(钩子函数)问题请说一下vue的生命周期函数(钩子函数)。问题描述首先关于生命周期函数,一般我的第一个问题就是这个,我认为是每个使用vue的都要清楚的,如果这个问题答的问题很大其实我都不太想继续往下进行了。 即使英语不标准(我就是不标准的人,并不是说这是个问题)也要去把关键...原创 2019-12-05 09:13:46 · 1676 阅读 · 0 评论 -
[前端面试]:Lydia Hallie 小姐姐的 javascript-questions,从基础到进阶
Github地址:JS 进阶系列问题原创 2019-11-15 08:44:10 · 453 阅读 · 0 评论 -
[前端面试]前端常用速查表格
原创 2019-11-13 11:23:13 · 189 阅读 · 0 评论 -
【持更】前端面试题目
1.如何适配手机浏览器和web页面。(这个主要考虑flex布局和rem布局)2.cookie、sessionStorage和localStorage的异同。3.清除浮动的方法?overflow:hidden清除浮动的原理是什么。4.前端路由实现的原理是什么5.position有哪几种属性,它们的区别是什么6.说一下强制缓存和协商缓存7.cookie如何防止被恶意读取8.什么是节流和防...原创 2019-09-10 18:11:21 · 329 阅读 · 0 评论