2022年的vue、react面试题目汇总集合(持续更新)

22 篇文章 0 订阅
16 篇文章 0 订阅

 vue系列:

​​​​2021 Vue.js 面试题汇总及答案 - Jack Niu - 博客园

react系列:

React面试题及答案(2021年React面试题大全带答案) - 知乎

2021年React常见的面试题以及答案(持续更新中...)_再见已是路人的博客-CSDN博客_react面试题及答案2021

2021年前端React面试题大汇总(收藏)-js教程-PHP中文网

掘金 高频前端面试题汇总之React篇(上)

掘金 高频前端面试题汇总之React篇 (下)

综合面试系列:

前端知识库,前端试题库,这个很全面啥都有

2021 面试笔记(react +js) - 西柚_w - 博客园

前端面试题2021及答案_細水、長流√的专栏-CSDN博客_前端面试题2021及答案

2021年前端最新最全面试题(答案持续更新中~) - 良人非良 - 博客园

写给女朋友的中级前端面试秘籍(含详细答案,15k级别) - 掘金

2019十道精选前端面试题整理汇总

vue2.x高阶问题,你能答多少 - 掘金

/********下面是杂项记录********/

js变量提升和函数提升讲解(1)

js中的变量提升、函数提升及变量访问原则(2)

fun();
console.log(b);//9
console.log(c);//9
console.log(a);// undefine
function fun(){
    var a = b = c = 9;
   //  这里有个陷阱,  上面的相当于:var a=9;b=9;c=9  b、c 是没有var的,是全局变量
    console.log(a);
    console.log(b);
    console.log(c);
}

1.var a=12
    function fn(){
      console.log(a)       //undefined
      var a=45
      console.log(a)      //45
    }
 fn()

2.var a=12;
     function fn(){
       console.log(a)        //12
       a=45
       console.log(a)        //45
    }
  fn()


3.函数与变量同名时的变量提升规则 
alert(fun); // 最终输出结果为:输出fun函数体
function fun(){
    alert(“我是一个函数”);
}
var fun = “我是一个变量”;
alert(fun); // 输出:我是一个变量

/* 为什么第一个alert输出的是fun函数体,而第二个alert输出的是“我是一个变量”?
因为用var声明的变量及function声明的函数在执行前都会将声明提升到最前面,如果变量与函数同名,
那么在声明的时候会忽略变量,只提升函数声明! */
/*
上面这段代码相当于:
function fun(){
    alert(“我是一个函数”);
}
alert(fun);
fun = “我是一个变量”;
alert(fun);
*/
this 指向规则

情况1:如果一个函数中有this,但是它没有被上一级的对象所调用,那么this指向的就是window,这里需要说明的是在js的严格版中this指向的不是window,但是我们这里不探讨严格版的问题,你想了解可以自行上网查找。

情况2:如果一个函数中有this,这个函数有被上一级的对象所调用,那么this指向的就是上一级的对象。

情况3:如果一个函数中有this,这个函数中包含多个对象,尽管这个函数是被最外层的对象所调用,this指向的也只是它上一级的对象,下面的例子可以证明,如果不相信,那么接下来我们继续看几个例子。

情况4:this永远指向的是最后调用它的对象,也就是看它执行的时候是谁调用的

情况3的demo
var o = {
    a:10,
    b:{
        // a:12,
        fn:function(){
            console.log(this.a); 
            //undefined  因为这里b已经注释了,访问不了b的对象,  如果不注释b的a,那就是12    
        }
    }
}
o.b.fn();

情况4的demo:
var j = o.b.fn;
j();  // 这种比较特殊,里面this是指向window的 



当this 遇上return  new
如果返回值是一个对象,那么this指向的就是那个返回的对象,如果返回值不是一个对象那么this还是指向函数的实例。
function fn()  
{  
    this.user = '追梦子';  
    return { v:123 };  
}
var a = new fn;  
console.log(a.user); //undefined  实际a 是{ v:123 }





call(): 改变函数的this指向,还会马上执行函数
       第一个参数是你想改变的this指向的对象
       后面的其它参数就是该函数的实参

apply():改变函数的this指向,还会马上执行函数
         第一个参数是你想改变的this指向的对象
         第二个参数是数组,数组里面存放函数的实参

bind(): 改变函数的this指向, 不会立马执行函数,在该函数调用的时候才会改变this指向
       第一个参数是你想改变的this指向的对象
       后面的其它参数就是该函数的实参
2021-11-25号更新 

如果想多个js同步执行不依赖任何异步,可以用:Promise.allSettled()

1.webpack打包、构建原理?
2.loader加载原理?常用loader的原理?loader执行顺序?
3.plugins加载原理?怎样自己写插件?webpack plugin执行顺序?
4.webpack HMR原理、热更新原理?

link 加载图片优化

js事件循环机制(宏任务、微任务)、

事件委托:本身是在子元素,却注册到父级元素,利用event.target.nodeName。优点:减少减少内存消耗

事件冒泡:从内到外,逐级传播

事件捕获:当鼠标点击或者触发dom事件时(被触发dom事件的这个元素被叫作事件源),浏览器会从根节点 =>事件源(由外到内)进行事件传播

JS自定义事件的定义和触发(createEvent, dispatchEvent)

什么是重排(回流)、 重绘

从输入URL到页面成功展示到浏览器的过程?

浏览器渲染页面的原理及流程?

apply、call   JS原生实现bind()

new 操作符做了什么?__proto__ 和 prototype 有什么区别?   

ES6 中 class 与构造函数的关系

手写 防抖、节流

vuex相关原理、mobx原理、react-redux状态管理原理(Provider 、connect 原理)

/***********欢聚考察基本功************/
0.css盒模型有哪些?box-sizing有哪些值
1.描述一下Dom事件流,怎么判断当前是处在哪个阶段
2.描述一下什么是变量提升?为什么要有变量提升
3.Css怎么处理样式冲突
4.setTimeout(() => {}, 0), 是什么时候执行的,如果想要更快执行回调怎么做?微任务有哪些?,js为什么要这样设计?
5.0.1+02 为什么不等于0.3
6.Promise有什么不足,除了它还有哪些异步解决方案,async await原理
7.Vue2中组件为什么只能有一个根节点,为什么Vue3组件可以有多个根节点?
8.Vue为什么使用虚拟dom?
9.Vue改变数据为什么是一次性收集之后再改,详情说一下这个原理,这里涉及到哪种设计模式,观察者和发布订阅有什么区别
10.Computed 之前为什么能互相引用
11.什么是浏览器缓存,有哪些,怎么跳过强缓存而使用协商缓存,页面怎么考虑要设置哪种缓存
11.按需导入的原理是什么
12.tree-shaking的原理是什么,为什么只对esmodule有用?
13.webpack热更新的原理?
链接:https://juejin.cn/post/7003714997951922184
页面白屏有哪些原因造成的?

1.前端代码错误,你的JS报错了,运行时抛出异常,接口报错导致前端错误处理,导致白屏

2.静态资源加载失败,如:js、css文件加载失败,导致白屏。

3.网络问题

4.如果有用cdn,CDN报错

2022-2-24号

diff算法   
虚拟dom
template编译过程
webpack 十连问掘金
vue数组重写过程
Vue初始化的过程
 Vue data 中随意更改一个属性,视图都会被更新吗?
强缓存和协商缓存
浏览器渲染过程
Url输入浏览器的过程
前端性能优化
es5和es6区别
postcss-pxtorem搭配amfe-flexible(监听窗口改变,viewWidth / 10 +'px')设置viewport放大缩小比例为1

es5实现继承方式
SubaaaaType.prototype = new SuperType(); 原型链
function Child() {
    Parent.call(this); 通过call改变this指向,子类里面调用父类
}

手写节流防抖 call  bind  apply  new过程

  • 3
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值