2024年前端最新深信服 星耀前端一面面经+二面凉了(2),这些面试官常问的开发面试题你都掌握好了吗英文

文末

如果30岁以前,可以还不知道自己想去做什么的话,那30岁之后,真的觉得时间非常的宝贵,不能再浪费时间在一些碎片化的事情上,比如说看综艺,电视剧。一个人的黄金时间也就二,三十年,不能过得浑浑噩噩。所以花了基本上休息的时间,去不断的完善自己的知识体系,希望可以成为一个领域内的TOP。

同样是干到30岁,普通人写业务代码划水,榜样们深度学习拓宽视野晋升管理。

这也是为什么大家都说30岁是程序员的门槛,很多人迈不过去,其实各行各业都是这样都会有个坎,公司永远都缺的高级人才,只用这样才能在大风大浪过后,依然闪耀不被公司淘汰不被社会淘汰。

269页《前端大厂面试宝典》

包含了腾讯、字节跳动、小米、阿里、滴滴、美团、58、拼多多、360、新浪、搜狐等一线互联网公司面试被问到的题目,涵盖了初中级前端技术点。

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

前端面试题汇总

JavaScript

二面 6.7下午2.30 约40分钟

先问我项目

直接切入到跨域和seo的底层原理,很深

已经发布的项目想获取b域名(不是自家的)的数据,怎么post跨域,我说不知道(网上只找到了cors解决)

怎么get? 我说jsonp 说说jsonp的实现和回调

img可以吗?我说可以,img怎么回调判断状态,我不知道。

(img元素能添加onError onLoad 属性,用于监听加载失败或者加载成功。)

seo, 单页面应用reactapp,多页面应用nextapp,以及自己写的多入口项目 针对seo他们有啥区别,我说了半天可能没说到他想听的,况且我也没深入了解(没查到合适的解释)

最近在学什么,我说markdown解析的一个案例,怎么实现的?我说他是用的一个插件。你怎么实现?我说匹配啊加标签啊高亮啊什么的巴拉巴拉

最后是一个匹配n叉树路径的算法

作者:mus。

链接:https://www.nowcoder.com/discuss/434043

来源:牛客网

题目:实现一个对树型结构进行过滤的函数,其中树形结构的格式如下:

tree = [

{name: ‘A’},

{name: ‘B’, children: [

{name: ‘A’},

{name: ‘AA’, children: […]}

]},

{name: ‘C’}

]

  1. 假设我输入的 str 为 A 则过滤后返回的结果为

[

{name: ‘A’},

{name: ‘B’, children: [

{name: ‘A’}

]}

]

  1. 假设我输入的 str 为 AA 则过滤后返回的结果为

[

{name: ‘B’, children: [

{name: ‘AA’, children: […]}

]}

]

  1. 假设我输入的 str 为 B 则过滤后返回的结果为

[

{name: ‘B’, children: [

{name: ‘A’},

{name: ‘AA’, children: […]}

]}

]

// 实现该函数,要求不允许对原有的tree做任何修改,最终返回结果是一棵新结构出来的树

function filter (tree, str) {

}

我递归实在不行 写了好久没写出来 大致思路也只能停留于我能找到那个子节点,路径怎么存下来我觉得要写一个顶层的tmp,但是我现撕肯定是写不出来的。。。这种难度我刷力扣都是看答案的。。

(等我看看写出来的话挂上来)

大概用了一个小时的时间才写出,一个用队列的方式层序便利同时保存路径,然后浅拷贝穿单链表

作者:mus。

链接:https://www.nowcoder.com/discuss/434043

来源:牛客网

const tree = [

{ name: “A” },

{ name: “B”, children: [{ name: “A” }] },

{

name: “AA”,

children: [

{ name: “BB” },

{ name: “C” },

{ name: “D”, children: [{ name: “A” }] },

],

},

{ name: “D”, children: [{ name: “C”, children: [{ name: “AA” }] }] },

];

function filter(tree, str) {

let arr = […tree];

arr = arr.map((a) => [a, []]); //给一个二维环境,这里用数组,用Map也可以

let tmp = [];

while (arr.length > 0) {

let a = arr.shift();

if (a[0].name == str) {

tmp.push(a);

continue;

} //匹配就放进去

if (a[0].children) {

a[0].children.map((b) => {

arr.push([b, a[1].concat(a[0])]);

});

} //如果有孩子就把孩子放入待检测队列,同时把父亲按照层顺序存到father数组中

}

//console.log(tmp)//tmp数组每一项都是[节点,路径[]]

let res = [];

for (let i = 0; i < tmp.length; i++) {

if (tmp[i][1].length == 0) {

res.push(tmp[i][0]);

continue;

} //如果恰好是第一层,路径就是空的

//正常情况下我们新建一个对象,采用单链表的方式创建浅拷贝路径

最后

正值招聘旺季,很多小伙伴都询问我有没有前端方面的面试题!

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

前端资料图.PNG

} //如果恰好是第一层,路径就是空的

//正常情况下我们新建一个对象,采用单链表的方式创建浅拷贝路径

最后

正值招聘旺季,很多小伙伴都询问我有没有前端方面的面试题!

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

[外链图片转存中…(img-FTWKVVkx-1715620626649)]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值