百度的面试

在百度的学长,帮我内推了下简历。高兴还没有两秒,就接到通知面试的电话,瞬间压力山大。小公司也没怎么面,八股文背的也不利索,看到镜头里又秃又强的面试官,有如看恐怖片,吓尿了!!!

百度一面

  1. 宇宙铁律,介绍下自己
    还好,之前看到过敖丙大佬面试自我介绍5句话公式 - 掘金 (juejin.cn)一文,里面有个公式:我是谁+从哪里来+我做过什么+有什么成绩+为什么能胜任。

面试官您好,我叫梦梦,东华理工大学25届软件专业大三在读,想来百度前端岗位实习,要是是AIGC项目就更好了。低年级的时候,跟着学长一起在B站学习、打些比赛,拿过蓝桥杯省二,奖学金也拿了一些。个人比较喜欢前端,也能用node写后端。chatgpt火了后,又对AIGC非常感兴趣,所以学习了python、prompt enginneering、吴恩达AI课程等,平时写代码会用一些AI Copilot工具提升编程效率。

仔细读过《你不知道的JavaScript》,并在掘金上写过JS基础和底层相关系列文章,热爱技术分享,掘金优秀作者。平时主要使用vue,熟悉全家桶开发,数据流按理及后台管理系统开发。阅读过vue、axios、ElementPlus的源码,未来会持续学习。

未来最大的机会是AI的机会, 非常期待在AIGC产品或项目写下自己的代码。同时非常看好百度代表中国队参与AI技术革命,为用户开发划时代的产品与体验。未来几年,我将为此而奋斗, 谢谢。

  1. var a = []; a.push()、a.pop() 请说明在js中的意义

使用的是字面量初始化创建了一个空数组,这是最简洁、直观且推荐的写法。这种方法直接在内存中创建并初始化数组对象,执行效率高。

var a = new Array(); 使用了Array构造函数来创建一个空数组。尽管功能上等同于前者,但性能上有差异。

如果传递整数参数,比如new Array(3), 指定长度

比如('a', 'b', 'c') 作为元素初始化。

还有 var arr = new Array(5).fill(0);也经常用到。

通过原型链查找,Array 原型上的push等方法

面试官又追问, var a = new A(),a 和 A 的关系,A 和 Function 的关系

a 是 A 的一个实例对象,a 的__proto__ 指向 A 的 prototype,A 的__proto__ 指向 Function 的 prototype。

  1. promise有几种状态,可以重复改变吗?

Promise对象有三种状态

Pending(未决)初始状态

Fulfilled(已履行/成功):操作成功完成时的状态

Rejected(已拒绝/失败):操作因错误或异常未能完成时的状态

Promise状态变化的特性是:

Promise状态的转变是不可逆且只能发生一次。也就是说,一个Promise不能从Fulfilled状态变回Pending状态,也不能从Rejected状态变为Pending或者Fulfilled状态。

一旦Promise从Pending状态变为Fulfilled(resolved)或Rejected(rejected),它就永远不会再改变。

因此,Promise的状态不能重复改变。

感觉回答的还可以,记得去字节的会长提醒面试时,切忌一个字一个字的蹦面试官。面试不只是回答问题,而是要展示自己。抓住熟悉的知识或技能点,就来个滔滔不绝,面试官不喊停就一直说。于是想到下面这个API:

Promise.resolve()与Promise.reject() 用于创建已确定状态的Promise对象,方便快速返回成功的或失败的结果

面试官一听这个就感兴趣了, 继续提问Promise还提供了哪些静态方法,平时怎么用的?开心, 面试官进包围圈了。

Promise.all(iterable)

参数是promise对象数组。只有当所有Promise都变为fulfilled时,返回的Promise才会变为fulfilled,并且结果是一个包含所有Promise结果的数组;只要有一个Promise变为rejected,则整体Promise也会立即变为rejected,返回第一个rejected Promise的理由。

Promise.race(iterable)

在传入的 Promise 数组中任何一个 Promise 解决(resolve)或拒绝(reject)时,会立即以那个率先改变状态的 Promise 的结果为准来解决或拒绝。

这里强调下细节,其它的promise实例仍然会继续运行,只不过其状态和结果不会归于最终的结果。

Promise.race 关注的是速度最快的 Promise 的结果,而 Promise.all 关注的是所有 Promise 是否都成功完成。

Promise.allSettled(iterable)

和Promise.all()相似,它等待所有Promise都达到settled状态(即无论是fulfilled还是rejected)。一旦所有Promise都决断了,返回的Promise会变成fulfilled,并且结果是一个数组,包含了每个输入Promise的结果描述对象,这些对象具有status('fulfilled'或'rejected')和对应的value或reason属性。

Promise.all() 更关注所有 Promise 是否都成功完成,它适用于需要所有任务成功完成才能继续下一步场景。而 Promise.allSettled() 则允许你观察一组异步操作的所有结果,无论成功与否,这对于获取并处理所有任务的最终状态非常有用。

到此,在三种状态的语法回答外,还将并发任务及sellted等偏业余的需求表演给面试官,看表情他还是挺满意的... 如果面试官不打断,我准备继续聊异步、红绿灯、手写promise... 面试就要变被动为主动,将自己擅长的表演出来。

  1. 输出结果,为什么?
相关推荐
yanlele7 小时前
前端面试第 75 期 - 2025.07.06 更新前端面试问题总结(12道题)
前端·javascript·面试
前端小巷子11 小时前
Web开发中的文件上传
前端·javascript·面试
Kaltistss12 小时前
98.验证二叉搜索树
算法·leetcode·职场和发展
你这个年龄怎么睡得着的13 小时前
为什么 JavaScript 中 'str' 不是对象,却能调用方法?
前端·javascript·面试
牛客企业服务14 小时前
2025年AI面试推荐榜单,数字化招聘转型优选
人工智能·python·算法·面试·职场和发展·金融·求职招聘
Penk是个码农16 小时前
web前端面试-- MVC、MVP、MVVM 架构模式对比
前端·面试·mvc
MrSkye16 小时前
🔥JavaScript 入门必知:代码如何运行、变量提升与 let/const🔥
前端·javascript·面试
爱学习的茄子16 小时前
深入理解JavaScript闭包:从入门到精通的实战指南
前端·javascript·面试
Sherlock Ma16 小时前
百度开源文心一言4.5:论文解读和使用入门
人工智能·百度·自然语言处理·开源·大模型·文心一言·多模态
一支烟一朵花17 小时前
630,百度文心大模型4.5系列开源!真香
人工智能·百度·开源·文心一言