面试官是来自奇安信可视化团队的成员,很有礼貌,也很有耐心。整场面试给自己打 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)
}
}
反问
- 可视化团队的技术栈
- 团队的工作时间、氛围
#23秋招##前端##面试##齐安信#