2021三月面试题汇总

570 阅读4分钟

写在前面

所有的题目皆是自己在成都面试(中小型公司)所遇见的题目,题目后方的数字指的是该题出现的次数。部分题目给出了答案,不过仅供参考。

JavaScript

typeof和instanceof有什么不一样的地方

参考答案

介绍一下Promise「3」

参考答案

自己实现一个promise的思路

参考答案
参考答案

js的宏任务与微任务有没有了解过「4」

参考答案

数组去重你有没有什么方式

参考答案

ES6里有哪些新特性「4」

参考答案

深拷贝和浅拷贝有什么区别,如何实现一个深拷贝「5」

参考答案

map、foreach、for循环之间的区别是什么

map和foreach是封装之后的产物,map会返回一个新的数组,foreach没有返回值
普通for循环的效率高于map和foreach,普通for循环能够使用break提前跳出循环

普通函数与箭头函数的区别「2」

参考答案

说一说JS的原型链

参考答案

js有哪些数据类型

原始类型:Number,String,Boolean,undefined,null,Symbol
引用类型:Object

简单介绍一下预加载

参考答案
介绍一下闭包

Vue

Vue里面的Key有什么作用

参考答案

简单介绍一下Vue的生命周期「5」

参考答案

父子组件之间生命周期执行的顺序

父组件beforeCreated ->父组件created ->父组件beforeMounted ->子组件beforeCreated ->子组件created ->子组件beforeMounted ->子组件mounted -> 父组件mounted

组件通信有哪些方式「7」

参考答案

mutation和action之间有什么区别

参考答案

了解过Vue里面的递归组件吗

参考答案

Vue与React的区别

参考答案

介绍一下Vuex里的数据流向

参考答案

有没有用过自定义指令,指令的生命周期有哪些

参考答案

ES6的模块与commonJS模块有那些差异

参考答案

vue-router有几种路由模式

参考答案

hash|history模式的实现原理

参考答案

vue组件里面的data为什么要用函数返回「2」

参考答案

讲一下Vue数据响应式的原理 / Vue数据双向绑定原理「5」

参考答案

计算属性的特点是什么

参考答案

什么场景使用watch比较好,什么场景使用computed比较好 「2」

参考答案

Vue3与Vue2有哪些区别

参考答案
Vue3指南

深度监听怎么做

将deep设置为true

路由传值是怎么做的

参考答案

Vue-router有哪些导航钩子,以及导航的解析流程

参考答案

简单描述一下Vuex的原理

参考答案

数据更新后,页面在一段时间内还未更新,如何立刻获得更新后的dom

参考答案

Vuex的数据是存在哪儿的

参考答案

Vue的路由跳转和location.href有什么区别

参考答案

HTML与CSS

HTML5有哪些新的标签

参考答案

清楚浮动的方式有那些

参考答案

position有哪些值,absolute和relative有什么区别

参考答案

flex布局垂直居中如何实现

参考答案

浏览器

cookie、localStorage和sessionStorage的区别是什么「2」

参考答案

跨域问题是怎么样解决的「2」

参考答案

服务端渲染有没有了解过

参考答案

从输入 URL 到页面加载完成,发生了什么?

参考答案

HTTP缓存有哪些,有什么区别

参考答案

实践题目

1.两个按钮,一个a按钮,一个b按钮,点击a按钮向发送一次请求,返回一个字符串a,点击b按钮向发送一次请求,返回一个字符串b,现在要将返回的字符串按照点击的顺序拼接起来,如何实现?
2.实现一个位于屏幕中央的盒子,盒子宽高分别为屏幕宽高的20%;在盒子中央写一行文字“VUE Test Page”,文字水平垂直居中。
3.从一个数组中arr(如[1,3,5,7])中找出两个和为target(如10)的下标组合(如[1,3]),假设arr中如果有和为target的情况,一定只有一组值,请尽量简洁的实现该函数
4.描述实现思路并实现一个add函数,使得add(1)(2)(3)和add(1,2)(3)的输出都为6
请写出下面代码的运行结果,主要考对eventloop的理解

async function async1() {
   console.log('async1 start');
   await async2();
   console.log('async1 end');
}
async function async2() {
   console.log('async2');
}
console.log('script start');
setTimeout(function() {
   console.log('setTimeout');
}, 0)
async1();
new Promise(function(resolve) {
   console.log('promise1');
   resolve();
}).then(function() {
   console.log('promise2');
});
console.log('script end');

其他

移动端是怎样进行响应式布局的

你们的权限管理这块是怎么做的

webpack做过哪些配置「3」

你在项目中遇到的最大困难是什么

无障碍阅读有接触过吗

你业余时间一般做些什么

算法这块有没有了解过,比如排序的方法有哪些