跳到主要内容

Mobvista 汇量科技

一面

  • 一行有三个元素,让它们等间隔排列
  • 三个一行,多余的元素折行,折行的元素要保持相同的纵列

空缺的部分用伪元素补齐

  • 用 css 实现九宫格,hover 时边框变成红色,边框都是 1px

设置特殊项元素的 margin 为负数,并使用绝对定位,hover 时 z-index 设置为 1

  • Map 和 Set 的使用场景

Map 是一种键值对的集合,它通常用于需要快速查找和访问数据的情况,例如在处理大量数据时 Set 是一种值的集合,其中每个值都是唯一的。它通常用于需要快速查找和去重数据的情况

  • WeakMap
  • Map 和 Ojbect 的区别
  • 如何判断一个对象是一个空对象
  • 防抖和节流
  • 说一下 Vue3 中的组合式 API
  • 在 Vue3 中实现一个 v-model

对组件使用 v-model 的默认值是 modelValue

  • 常用 http 响应码
async function async1() {
console.log('async1 start')
await async2()
console.log('async1 end')
}

async function async2() {
console.log('async2 start')
return new Promise((resolve) => {
resolve()
console.log('async2 end')
})
}

setTimeout(() => {
console.log('setTimeout')
}, 0)

console.log('script start')

async1()

new Promise((resolve) => {
resolve()
console.log('promise1')
})
.then(() => {
console.log('then1')
})
.then(() => {
console.log('then2')
})

console.log('script end')
js
  • 实现一个函数,将输入的 arr,输出 tree。其中,id 是唯一的,pid 代表当前对象属于那个 id 的子节点,例如:pid 为 1,那它就是 id 为 1 的对象的子节点
// 结构大概是这样的
const arr = [
{ id: 1, name: '部门1', pid: 0 },
{ id: 2, name: '部门2', pid: 1 },
{ id: 3, name: '部门2', pid: 1 },
{ id: 4, name: '部门3', pid: 3 },
{ id: 5, name: '部门4', pid: 4 },
]

// 输出
const tree = {
id: 1,
name: '部门1',
pid: 0,
children: [
{
id: 2,
name: '部门2',
pid: 1,
children: [],
},
{
id: 3,
name: '部门2',
pid: 1,
children: [
{
id: 4,
name: '部门3',
pid: 3,
children: [
{
id: 5,
name: '部门4',
pid: 4,
children: [],
},
],
},
],
},
],
}
js