likes
comments
collection
share

牛客最新前端面经面试题汇总(含解析)

作者站长头像
站长
· 阅读数 67

前言

面经部分,初步决定分为两部分,一部分为所有的简答题和手写题,另一部分为程序题。此章为简答题和手写题部分。

程序题部分正在想以何种方式发出,大家也可以在评论区给阿包出出注意

我大约统计了牛客网大约 15 家大公司的前端题,考察频率大致划分如下:

  • ⭐⭐⭐⭐⭐: 在 15 家公司面试中出现 10+
  • ⭐⭐⭐⭐:在 15 家公式面试中出现 5-10
  • ⭐⭐⭐:在 15 家公司面试中出现 3-5
  • 无星:出现 1-2

下面是笔试题部分和题目分析部分传送门:

JavaScript基础部分

typeof 问题汇总

考察频率: (⭐⭐⭐⭐⭐)

答案&解析

typeof能正确区分原始值吗

typeof的返回值有哪些

typeof function 会显示什么

typeof为什么对null错误的显示答案&解析

typeof('abc')和 typeof 'abc'都是 string, 那么 typeof 是操作符还是函数?答案&解析

JavaScript的数据类型

考察频率: (⭐⭐⭐⭐⭐)

答案&解析

== 的隐式转换规则

undefined、null 自身相等且互相相等

考察频率: (⭐⭐⭐⭐⭐)

== 的隐式转换规则

instanceof原理

考察频率: (⭐⭐⭐)

答案&解析

["1","2","3"].map(parseInt) 结果是什么,并解释原因

如何让上述式子返回[1,2,3] 用你能想到的最简单的方案(要求使用[].map())

考察频率: (⭐⭐⭐)

答案&解析

判断数据类型的方法

答案&解析

typeof 与 instanceof 的区别

答案&解析

如何判断数组类型

答案&解析

number能表示的整数的最大范围

答案&解析

2.toFixed() 会输出什么结果

答案&解析

查询某个对象是否有某个属性的方法

答案&解析

splice和slice你能说说有啥用和区别吗

答案&解析

==和===区别

答案&解析

构造函数与普通函数的区别

类数组与数组区别,为什么要设置类数组

答案&解析

null 与 undefined 的区别

答案&解析

a.b.c.d 和 a['b']['c']['d'],哪个性能更高?

答案&解析

forEach与for循环,谁的性能更好

答案&解析

JavaScript深入部分

this指向

考察频率: (⭐⭐⭐⭐⭐)

答案&解析

原型与原型链

考察频率: (⭐⭐⭐⭐⭐)

答案&解析

你能讲一下事件循环机制吗?

考察频率: (⭐⭐⭐⭐⭐)

答案&解析

作用域与作用域链

考察频率: (⭐⭐⭐⭐⭐)

答案&解析

谈谈你对闭包的理解

考察频率: (⭐⭐⭐⭐⭐)

答案&解析

预编译

考察频率: (⭐⭐⭐⭐⭐)

答案&解析

new 操作符做了哪些事情

考察频率: (⭐⭐⭐⭐⭐)

答案&解析

垃圾回收机制

考察频率: (⭐⭐⭐⭐)

继承的多种方式和优缺点

考察频率: (⭐⭐⭐⭐)

JS原型链继承与Class继承

考察频率: (⭐⭐⭐⭐)

call、apply、bind区别

考察频率: (⭐⭐⭐⭐)

答案&解析

cookie, localStorage sessionStorage区别

考察频率: (⭐⭐⭐⭐)

答案&解析

数组高阶方法

考察频率: (⭐⭐⭐⭐)

防抖与节流的区别

考察频率: (⭐⭐⭐⭐)

答案&解析

script标签的defer和async属性有什么区别

考察频率: (⭐⭐⭐)

答案&解析

同步任务和异步任务区别

考察频率: (⭐⭐⭐)

答案&解析

构造函数,实例对象和原型对象关系

考察频率: (⭐⭐⭐)

答案&解析

使用new调用函数,而这个函数中有return,那它return出来的是什么

考察频率: (⭐⭐⭐)

答案&解析

setTimeout、Promise、Async/Await 的区别

答案&解析

17.Object的_proto_指向什么

答案&解析

18.Function的_proto_指向什么

答案&解析

19.promise和setTimeout分别是什么任务

答案&解析

20.js文件为什么要放在文件底部

答案&解析

ES6

什么是promise?实现一个简单的promise

考察频率: (⭐⭐⭐⭐⭐)

Promise.all(), .race(), .allSettled()对比

考察频率: (⭐⭐⭐⭐⭐)

Promise、Generator、Async三者的区别

考察频率: (⭐⭐⭐⭐⭐)

async 和 await 原理

考察频率: (⭐⭐⭐⭐⭐)

let const var 区别

考察频率: (⭐⭐⭐⭐⭐)

答案&解析

箭头函数与普通函数区别

考察频率: (⭐⭐⭐⭐⭐)

答案&解析

defienProperty与proxy区别

考察频率: (⭐⭐⭐⭐)

map与weakMap的区别

考察频率: (⭐⭐⭐⭐)

答案&解析

set 与 weakSet 区别

考察频率: (⭐⭐⭐⭐)

答案&解析

map与object区别

考察频率: (⭐⭐⭐⭐)

答案&解析

map与set

考察频率: (⭐⭐⭐⭐)

如何在使用async & await 时优雅的处理异常

考察频率: (⭐⭐⭐⭐)

proxy优缺点

考察频率: (⭐⭐⭐)

Object.defineProperty

考察频率: (⭐⭐⭐)

介绍一下symbol

考察频率: (⭐⭐⭐)

proxy可以监听嵌套对象的变化吗

答案&解析

你了解ES6的bigInt吗

map与object键值key遍历顺序

答案&解析

聊聊Promise的值穿透和异常穿透

Object.assign是浅拷贝还是深拷贝?实现深拷贝的方法有哪些?(2020.01.07).md

答案&解析

generator底层原理

BOM DOM

DOM事件流

事件冒泡、事件捕获

事件冒泡、事件捕获

什么是事件委托?

什么是事件委托?

获取元素在页面位置的 API 有哪些

setTimeout与setInterval区别,两者那个更准

在 timer = setInterval(() => {}, delay) 中,这个 timer 打印出来是什么

在 timer = setInterval(() => {}, delay) 中,这个 timer 打印出来是什么

requestAnimationFrame

遍历

遍历对象的方法

遍历对象的方法

for in 与 Object.keys区别

for in 与 Object.keys区别

for in 和 for of 的区别

for of 可以遍历对象吗

for of 可以遍历对象吗

手撕代码

promise

实现promise

考察频率: (⭐⭐⭐⭐⭐)

实现promise.all

考察频率: (⭐⭐⭐⭐⭐)

参考代码

实现 promise.finally

考察频率: (⭐⭐⭐⭐⭐)

参考代码

实现promise.allSettled

考察频率: (⭐⭐⭐⭐)

参考代码

实现promise.race

考察频率: (⭐⭐⭐)

参考代码

来说一下如何串行执行多个Promise

promise.any

参考代码

resolvev reject

参考代码

Array篇

数组去重

考察频率: (⭐⭐⭐⭐⭐)

参考代码

数组扁平化

考察频率: (⭐⭐⭐)

forEach

考察频率: (⭐⭐⭐)

参考代码

reduce

考察频率: (⭐⭐⭐)

参考代码

map

filter

every

some

find/findIndex

indexOf

参考代码

实现sort

防抖节流

实现防抖函数debounce

考察频率: (⭐⭐⭐⭐⭐)

参考代码

实现节流函数throttle

考察频率: (⭐⭐⭐⭐⭐)

参考代码

Object篇

能不能写一个完整的深拷贝

考察频率: (⭐⭐⭐⭐⭐)

实现new

考察频率: (⭐⭐⭐⭐)

参考代码

继承

考察频率: (⭐⭐⭐⭐)

原型链继承

借用构造函数(经典继承)

组合继承

原型式继承

寄生式继承

寄生组合式继承

Class实现继承(补充一下)

class Animal {
    constructor(name) {
        this.name = name
    } 
    getName() {
        return this.name
    }
}
class Dog extends Animal {
    constructor(name, age) {
        super(name)
        this.age = age
    }
}

实现object.create

参考代码

Function篇

call

考察频率: (⭐⭐⭐⭐)

参考代码

bind

考察频率: (⭐⭐⭐⭐)

参考代码

apply

考察频率: (⭐⭐⭐⭐)

参考代码

实现柯里化

考察频率: (⭐⭐⭐)

实现链式调用

参考代码

偏函数

ajax 与 jsonp

考察频率: (⭐⭐⭐)

实现ajax

参考代码

实现jsonp

参考代码

ES6篇

实现set

参考代码

实现 map

参考代码

实现es6的class

参考代码

使用proxy实现arr负数索引访问

参考代码

其他

instanceof

考察频率: (⭐⭐⭐⭐)

参考代码

实现千分位分隔符

考察频率: (⭐⭐⭐)

参考代码

把一个JSON对象的key从下划线形式(Pascal)转换到小驼峰形式(Camel)

考察频率: (⭐⭐⭐)

参考代码

实现数据类型判断函数

参考代码

实现数组转树

参考代码

实现sleep函数

参考代码

实现发布订阅模式

[参考代码](21interview/imitate/eventEmitter.md

未找出答案题目

set去重原理

使用promise实现请求超时重新请求

JavaScript进阶系列

近期精彩

面试部分

快乐编程

题目仓库

传送门: 仓库

后语

整理了好久,如果大家感觉有帮助,希望可以给小包点个赞👍

伙伴们,如果大家感觉本文对你有一些帮助,给小包点一个赞👍或者关注➕都是对我最大的支持。

我是 战场小包 ,一个快速成长中的小前端,希望可以和大家一起进步。

一路加油,冲向未来!!!

转载自:https://juejin.cn/post/7028478428680552456
评论
请登录