【奇安信】【前端】【一面】【45min】
面试官是来自奇安信可视化团队的成员,很有礼貌,也很有耐心。整场面试给自己打 70 分,整个人状态不是很好,回答的有点啰嗦。面试过程中喝了两次水,但好在基本上都能回答上来。
一面是基础面试
- 自我介绍
- 在字节做的事情,在项目中的分工
- scirpt 标签 async defer 的区别,使用场景(构建工具)
- ES6 Bigint 怎么用的,Class 类存在变量提升吗,和 ES5 中的类有什么区别
- ES6 如何判断一个数是否是整数,`Number.isInteger`
- typeof 的缺点,instanceof 的缺点
- Vue 3 响应式的优点,对比 Vue2
- Vue computed 计算属性如何传递参数
- Vue 2 / 3 如何创建全局变量(API上的不同)
- Vue2 prototype | Vue3 `app.config.globalProperties`
- Vuex 持久化存储设计,利用 proxy 做代理,手动添加 mutation
- webpack loader 和 plugin 的区别
- less 文件如何转化为 css
- 中间问了几个关于可视化的问题,canvas 内置的一些东西不太了解。问题都记不起来了
- 代码输出题(凭借记忆了)
这里输出弄错了一个,没吃午饭果然菜的不行
async function async1() { console.log('async1 start') await async2() console.log('async1 end') } async function async2() { new Promise((resolve, _) => { console.log('promise1') resolve() }).then(() => { console.log('promise1 end') }) } console.log('script start') setTimeout(() => { console.log('time') }, 0) async1() new Promise((resolve, _) => { console.log('promise2') }).then(() => { console.log('promise2 end') }) console.log('script end') -----result---- script start async1 start promise1 promise2 script end promise1 end async1 end promise2 end time
- 输出1 - 100 的质数
function isPrime(num) { let temp = parseInt(Math.sqrt(num)); for (var i = 2; i <= temp; i++) { if (num % i == 0) { return false } } return true } for (let i = 1; i < 100; i++) { if (isPrime(i)) { console.log(i) } }反问
- 可视化团队的技术栈
- 团队的工作时间、氛围