首页 / minimax
#

minimax

#
23187次浏览 483人互动
此刻你想和大家分享什么
热门 最新
8.20 Minimax前端一面,被拷打
问的真的很难很深,面试官水平很高啊,被狠狠拷打,面试官人很好,给过了,同时也暴露了很多问题全长一个小时左右,开始直接上难度无八股,实习+项目+做题1.微前端是什么概念,子应用之间如何实现环境隔离?2.在eval里this指向哪里?如何改变eval的this?eval函数只要是在全局直接运行或者是通过一个函数调用执行、作为对象属性被调用执行这种间接的执行方式,他的指向都是全局作用域。他不能直接被call/bind/apply改变this指向,改变的思路是在eval外面包一层函数,改变外面这个函数的this指向3.上面说的那种方式没办法直接改变eval的this,因为eval的this永远指向外部函数的上下文,怎么直接改变?使用with4.new Function创建函数和普通创建函数的区别?但是如果我们使用 new Function 创建一个函数,那么该函数的 [[Environment]] 并不指向当前的词法环境,而是指向全局环境。因此,此类函数无法访问外部(outer)变量,只能访问全局变量。5.eval执行的返回值是什么?如果传入一个字符串“undefined”,返回什么?如果传的参数不是字符串,会被原封不动的返回,如果是字符串,字符串内是表达式,会执行表达式并返回结果,字符串内是语句,会被按顺序执行。如果是“undefined”,会返回undefined6.项目中人员轨迹如何记录,怎么把轨迹点连成线?有看过底层实现吗?了解webGL吗7.流程可视化编辑如何实现,有用过canvas吗8.cookie多大?localstorage多大?9.localstorage能跨域吗?和sessionstorage有什么区别不能,只在同一个域名下生效10.localstorage内存有限制,到限制了怎么办?11.react用过哪些优化手段手撕:动态规划找最短路径问题不多,但是问的很细,太细就答不上来了,然后面了很久。大家平时还是要多深挖一下#minimax##前端##秋招#
查看11道真题和解析
点赞 评论 收藏
分享
70场面试,复盘我遇到的有趣问题(一)
        一直面试只能让你把会的背的更熟,但想进步还是得回头看看不会的问题。        今天回顾一下我遇到的一些有价值的问题,结合我自己的一些理解对这些问题尝试解答一下,相信对大家一些知识的理解也会有些帮助(有问题的话欢迎指出)。有用的话感谢大家点赞收藏送花~1.(滴滴提前批二面)Vue开启了keep alive之后会经历哪些生命周期?缓存了什么东西?        这个点我自己是没有仔细思考过的,当时面试官提问vue的生命周期,我提到了Vue开启keep alive前后生命周期的不同,面试官拓展的问了这个问题。        背八股的时候都背过,使用<keep-alive></keep-alive>组件包裹后可以在切换路由的时候不必销毁组件。并且会多出两个生命周期:activated和deactivated。其中activated在组件渲染的时候执行,deactivated在组件隐藏时执行,因此将这两个生命周期对比mounted和beforeDestory来学习。组件在初次渲染的时候会经历从beforeCreate到mounted这整个阶段,在后续切换的过程中则只会经历activated,随后的beforeUpdate和updated都会经历,隐藏时经历deactivated,最后销毁的时候才会经历beforeDestory和destoryed。        那么缓存了什么?我们知道在mounted阶段,虚拟DOM转为真实DOM,此时data,method,虚拟DOM都有了;而activated阶段可以不经历前面的钩子,直接挂载DOM,说明keep-alive缓存了虚拟DOM,并且还有所有的数据/方法,也就是缓存了组件实例。        如果面试阶段没有见过这个题,可以从每个生命周期干了什么开始联想,其中走到mounted阶段拥有了什么,那么actived阶段就也会有这些。2.(4399一面)http1.1的情况下,一个网页的图片是一张一张加载还是一批一批加载的?        首先回顾一下http1.1的特性:    ● 默认长连接,新增响应头Connection:keep-alive字段,保持TCP连接不断开    ● 管道化:基于上面长连接的基础,管道化可以不等第一个请求响应继续发送后面的请求,但响应的顺序还是按照请求的顺序返回    ● 缓存处理:新增catch-control字段    ● 断点传输机制。文件传输时如果遇到网络故障,可以从已经上传/下载好的地方继续请求,不用从头开始        其中第二点提到的管道化基本可以解答整个问题,虽然可以发送多个请求,但是返回的顺序还是有序的。因此虽然TCP最大连接数有6~8个,但是返回时还是顺序返回的。        但是需要注意,如果严谨一点的话还是要考虑一下预加载的情况。例如,当浏览器解析到 HTML 中的<link rel="prefetch">标签时,它可能会提前发起对指定资源(包括图片)的请求,这样在真正需要显示该图片时,可能已经加载完成或者部分加载,从而在一定程度上出现看似一批加载的情况。3.(Minimax一面)eval和new Function的this指向问题:        eval的this指向可以看这篇,很详细:https://ayk.moe/articles/javascript-change-this-in-eval-function/index.html        简单的说:eval函数只要是在全局直接运行或者是通过一个函数调用执行、作为对象属性被调用执行这种间接的执行方式,他的指向都是全局作用域。他不能直接被call/bind/apply改变this指向,改变的思路是在eval外面包一层函数,改变外面这个函数的this指向。        new Function:使用 new Function 创建的函数,它的 [[Environment]] 指向全局词法环境,而不是函数所在的外部词法环境。因此,我们不能在 new Function 中直接使用外部变量。        如果你对这块不熟悉,来看看这个:https://zh.javascript.info/new-function4.(Minimax二面)React:在if else里书写hooks,为什么不可以?        我用我自己比较容易理解的话术来简述一下关键原因,这里面的具体细节还是比较复杂的,有兴趣的牛u可以找找资料了解一下。        react的fiber树有两颗:        current fiber树: 当完成一次渲染之后,会产生一个current树,current会在commit阶段替换成真实的Dom树(可以看成虚拟dom转真实dom)。        workInProgress fiber树: 即将调和渲染的 fiber 树。再一次新的组件更新过程中,会从current复制一份作为workInProgress,更新完毕后,将当前的workInProgress树赋值给current树。        workInProgress tree上有一个memoizedState属性,在函数组件中,memoizedState在一次调和渲染过程中,以链表的形式存放hooks信息。        每一个hook函数执行,都会产生一个hook对象,里面存放了hook的当前信息,然后会以链表的形式串联每个hook对象,并赋值给workInProgress的memoizedState。        每次组件更新的时候,会先复制一份current tree到workInProgress tree,此时在workInProgress上进行更新。一旦在条件语句中声明hooks,在下一次函数组件更新,hooks链表结构,将会被破坏(某个节点可能被跳过),current树的memoizedState缓存hooks信息,和当前workInProgress不一致,如果涉及到读取state等操作,就会发生异常。                以上很多是自己的理解,可能讲述不准确但有助于自己理解,欢迎评论区留言指出错误~#面经##前端##滴滴##4399##minimax##24届软开秋招面试经验大赏#
点赞 评论 收藏
分享
70场面试,复盘我遇到的有趣问题(二)
         不知道这个系列可以更新多久,我预期是希望逐步整理所有的我认为有价值的问题,趁着还有时间,多复盘一下,大概每篇更新四五个问题,在精不在多。         如果大家觉得有用欢迎点赞收藏送花!1.(Minimax二面)react的单向数据流怎么理解,有什么好处?        当时对这个概念了解的不太深入,没回答好,下来复盘我觉得可以按照如下思路展开。        首先这个问题想回答好就需要理解几个概念:什么是数据流?什么是单向?为什么要设置成单向的?咱一个一个看看        react组件中最常用到的数据有两类:state和props,state是组件内部自行维护的,props是父组件传给子组件的,下面说的数据我理解都指的是props。        数据流:也就是数据在不同组件或节点之间的流动,比如a数据(引用类型)被b节点引用,又被b传递给c,那么a数据改变后会影响b,从而影响c,这就叫数据流。但是这种流动是双向的,因为如果在b或c修改了这个数据,其他的也会变化。        单向:在react中,单向是”自顶向下“的,也就是react规定了数据的流向是从外层组件向内层组件进行传递和更新的,而内层组件是无法直接修改props影响外层的。        那么为什么要用单向的形式?如果内层的组件可以通过修改props来修改外层的数据,那么外层使用到这个数据或者其他使用到这个数据的地方都会造成数据更新,UI渲染也会改变,这会造成数据紊乱和不可控。所以为了更好的可控性,react设计了单向数据流。        除此之外还有一个好处,所有的数据更新是单向的,那么出现问题的时候会更好溯源,因为修改数据的链路是确定的,排查起来顺着调用链就可以一层一层找到问题了。2.(快手二面)如果用户传了一个很大的excel要解析,如何处理比较好?web worker如何和主线程通信?        首先这个问题可以泛化到很多复杂计算上,而不只是excel解析,其次可以延申展开一些东西。‘        web worker是JS里难得的多线程。        在 HTML5 中,工作线程的出现使得在 Web 页面中进行多线程编程成为可能。众所周知,传统页面中(HTML5 之前)的 JavaScript 的运行都是以单线程的方式工作的,虽然有多种方式实现了对多线程的模拟(例如:JavaScript 中的 setinterval 方法,setTimeout 方法等),但是在本质上程序的运行仍然是由 JavaScript 引擎以单线程调度的方式进行的。在 HTML5 中引入的工作线程使得浏览器端的 JavaScript 引擎可以并发地执行 JavaScript 代码,从而实现了对浏览器端多线程编程的良好支持。HTML5 中的 Web Worker 可以分为两种不同线程类型,一个是专用线程 Dedicated Worker,一个是共享线程 Shared Worker。两种类型的线程各有不同的用途        和主线程之间的通信是通过postMessage来进行的。简单的说,主线程用postMessage向webworker推送消息,子线程用onMessage接受并处理,处理完之后在子线程内调用postMessage将结果返回给主线程,主线程同样用onMessage接受。具体内容请查阅MDN文档:https://developer.mozilla.org/zh-CN/docs/Web/API/Web_Workers_API/Using_web_workers3.(灵犀互娱一面)多个web worker如何保证顺序?        还好当时面试官只是提了一嘴,没让我解答。        这个问题属于上面的问题的延申版本,其实没了解过具体方式也能猜个七七八八(类比文件切片上传之类的)。要想保证顺序,最简单的方式就是在给不同web worker分配任务时附带上一个唯一编号,在web worker处理完返回结果时也将这个编号一起发回给主线程,在主线程中按顺序重组。        查了一下,webworker自身也提供了all和race等方法,这些其实就是在promise的基础上封装的(想来也正常,毕竟不同线程,肯定要异步返回)。有一个很详细的知乎文章,有兴趣的uu们自行查阅哈:https://zhuanlan.zhihu.com/p/41431253#:~:text=web-worker4.(快手二面)setInterval准确吗?        感觉大家可能也看过,但是这个问题还是比较有意思的。        答案是不准确,为啥呢?        嵌套的 setTimeout 相较于 setInterval 能够更精确地设置两次执行之间的延时。        下面来比较这两个代码片段。第一个使用的是 setInterval:        let i = 1;        setInterval(function() {          func(i++);        }, 100);        第二个使用的是嵌套的 setTimeout:        let i = 1;        setTimeout(function run() {        func(i++);          setTimeout(run, 100);        }, 100);        对 setInterval 而言,内部的调度程序会每间隔 100 毫秒执行一次 func(i++)(图1),时间开始计算的位置是调用内部方法的那一刻,因此第一次方法结束到第二次开始之间的时间间隔其实是小于100ms的,这就是为啥他不准确。        再看看setTimeout(图2)。时间开始计算的位置是内部方法调用结束的时刻,也就是说两次方法之间的时间间隔是准确的100ms。好处在于如果内部方法调用的耗时比较长,那么这个方法也能确保两次调用之间的时间间隔。        延申:如果setInterval的内部函数执行耗时大于设定的时间间隔咋办?        在这种情况下,JavaScript 引擎会等待 func 执行完成,然后检查调度程序,如果时间到了,则 立即 再次执行它。极端情况下,如果函数每次执行时间都超过 delay 设置的时间,那么每次调用之间将完全没有停顿。5.(百度一面)语义化标签如果没加样式,跟div、span这些非语义化标签有啥区别?        这个就看大家对语义化标签的理解了。首先肯定能想到的一点就是更方便理解,看到header就知道是顶,看到aside就知道是侧边栏,但是这些任务div都能完成,区别在哪?        1.即使在没有CSS的情况下,HTML页面也能呈现出很好地内容结构、代码结构。语义标签具有默认的CSS,比如html5之前的h1、h2等等就是语义化标签,他们表示几级标题;虽然我们在html没有引入任何css时,我们仍然可以看到h标签有字体放大加粗的效果。 实际上,html本身是没有表现的,我们看到例如 h1标签是粗体,字体大小2em,加粗;strong是加粗的,不要认为这是html的表现,这些其实html默认的css样式在起作用,所以去掉或样式丢失的时候能让页面呈现清晰的结构不是语义化的HTML结构的优点,但是浏览器都有有默认样式,默认样式的目的也是为了更好的表达html的语义,可以说浏览器的默认样式和语义化的HTML结构是不可分割的        2.不仅人更容易看懂,也更利于机器看懂,对SEO更友好。再次感谢大家的点赞收藏和花花#软件开发2024笔面经##前端##快手##minimax##百度##面经#
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
01-07 22:14
已编辑
秋各位佬帮忙选选offer,希望能给出大
投票
字节 客户端 30*15加10W+的签字费 大专
点赞 评论 收藏
分享
2024-08-28 15:09
门头沟学院 Java
MiniMax服务端一面凉经
已经感谢信了(时间线写在后面一共四十分钟出头,先自我介绍,然后20分钟拷打简历+八股,20分钟手撕+反问。一、自我介绍二、问简历问项目1. 介绍实习经历。2. 实习用Kafka是什么场景?为什么这样用?3. 实习用Redis做数据缓存具体存了什么?怎么维护缓存和数据库里数据的一致性?4. 项目里说用Redisson做限流,讲讲怎么实现的。讲一下令牌桶限流算法有什么缺点。三、八股拷打1. 为什么InnoDB的索引结构主要用B+树?为什么这样设计?2. MySQL是怎么做到可重复读的事务隔离级别的?快照是单行的快照吗?怎么解决幻读?具体怎么锁?3. Redis有几种数据结构?4. zset是怎么实现的?描述一下跳表的实现?5. 讲一下TCP和UDP的区别。TCP具体是怎么实现的,来达到可靠性要求的?6. 假如现在在浏览器输入www.baidu.com,能描述下从输入url到整个页面渲染回来的过程吗?7. 为什么TCP握手三次就够了但挥手要四次?四、手撕算法题LeetCode原题 33. 搜索旋转排序数组五、反问用什么语言?说主要用Go,也有其他语言。招人不看重语言,看重场景思考等通用能力。#秋招##后端##Java##minimax##面经#时间线:8.13 投递简历8.14 简历评估中----  没有笔试8.20 邮件约面8.22 一面8.27 感谢信
查看11道真题和解析
点赞 评论 收藏
分享
点赞 评论 收藏
分享
大模型公司招人啦
#大模型招聘##独角兽##minimax##算法##推理优化#我们是谁成立于2021年12月,MiniMax是通用人工智能时代基础设施建设者和内容应用创造者。作为国内唯一一家拥有文本、语音、视觉多种模态融合的通用大模型引擎能力并打通产品全链路的科技创业公司,团队致力于用领先的通用人工智能(AGI)引擎技术,通过多场景和多维度应用及交互,推动通用人工智能技术新范式变革,重塑人工智能商业模式。以技术和产品为核心驱动力,MiniMax自研了整套端到端AGI引擎系统。核心技术研发成员均来自全球知名高校和全球顶尖科技公司,拥有世界顶尖自然语言处理,语音,计算机视觉,计算机图形学等工业界和学术界经验,拥有多项全球领先的人工智能领域研究成果,具有上百个全球发明专利,1/3 的团队成员拥有世界顶尖技术实验室的博士学位,团队核心成员皆亲历了海内外人工智能 1.0 时代的发展变化,对全球人工智能行业有着深刻的理解。以“和用户共同创造通用智能 Intelligence with Everyone”为使命,依托出色的技术研发实力和产品运营能力,MiniMax由全球顶级投资机构背书,获多轮融资,是大模型领域不断迭代、快速增长的独角兽企业🦄️无工作年限要求,欢迎超优秀应届毕业生和希望认真打磨技术的高潜力在校生以及技术大牛MiniMax社招内推码: 4QMYV1Q 投递链接: https://vrfi1sk8a0.jobs.feishu.cn/s/iPfE3ad5- 极具竞争力的薪资- 五险二金- 商业保险 - 每个月一天额外带薪福利假- 弹性上下班不打卡 - 房补餐补,生日等福利多多欢迎大家投递
点赞 评论 收藏
分享
玩命加载中
牛客网
牛客企业服务