奇安信2022年春招实习前端一面凉经

355 阅读4分钟

基本情况的了解

1.自我介绍

大概讲了以下内容:

  • 姓名
  • 学校
  • 年级
  • 专业
  • 前端做了多久了(我说的是半年多)

2.问前端整体的掌握情况

就是针对前面自我介绍时说到的前端学习时长来问我对前端整体的一个掌握的情况(html、css、js)

3.聊项目(大概4分半)

4.简述简历上写的获奖经历

CSS

1. 你知道 IE 盒模型吗?

1.1 设置 IE 盒模型的那个 css 属性是什么?

1.2 IE 盒模型和标准盒模型的区别(面试前两天刚复习过,但还是没有答好)

2.项目的 css 布局方式选型

基于之前说的小程序技术栈问了项目的布局方式的选型,flex 还是 float,我回答的 flex + position,然后下面的问题基本都是围绕这 3 个来问了。。。

2.1 经典 flex 布局问题

水平垂直居中,子容器如何在父容器中水平垂直都居中

2.2 对 float 的了解

使用 float 会出现什么问题,其实考察的就是 float 布局的特点,float 很久没用了,我随口就答了个“脱离文档流”,这个有所争议

2.3 定位

什么场景需要用到相对定位,什么场景需要用到绝对定位,这部分也没答好

3.css 中什么是块级元素、内联元素、内联块元素?

问他们之间的特性,有什么不同

哪些元素可以设置宽高

三个元素之间进行转换的 css 属性,这个属性的值有哪些?(display)

4.问 padding 属性

问块级元素 padding-top: 10% 这个 10% 是根据什么来计算的

根据块级元素的宽度来计算的(面试官告诉我的,我以为是 height)

根据上面的答案给了一个场景题:

父容器宽高不确定,如何控制子容器的比例为 4:3 (相对父容器动态调整)

子容器宽 100%,高 75%,或者设置 box-sizing + padding-top:25%,或者 padding-bottom:25%

JS

1.ES6 常用属性

1.1 解构赋值

说一个解构赋值的场景

如何使用解构赋值给变量赋初值,改变值呢?

1.2 箭头函数,箭头函数和普通函数的本质区别?(这个忘记了,没答好)

1.3 promise

问 promise 的用法

场景题:

两个打印,setTimeout 里面有一个打印,外面还有一个打印,执行的顺序是什么?(外面的先打印)

setTimeout(() => {
  console.log(1);
}, 1)

console.log(2);
// 先输出 2,再输出 1

反问,如何使用 promise 来改变输出的顺序,使得 setTimeout 里面的先打印,然后再打印外面的那个(先输出 1,再输出 2)

function sleep() {
  return new Promise((resolve, reject) => {
    setTimeout(() => {
      console.log(1);
      resolve()
    }, 1)
  })
}

sleep().then(res => {
  console.log(2);
})

// 先输出 1,再输出 2

这里没给在电脑上写代码,所以回答得很难受,没讲清楚

1.4 async 和 await

如何使用 async 和 await 解决上面说到的那个问题

// 基于上面的 sleep 函数,再新建一个 sleep2 函数

async function sleep2() {
  await sleep()
  console.log(2);
}

sleep2()  // 1 2

其他

问我平常是如何学习前端的,以及如何解决学习或者开发过程中遇到的问题,面试官建议我可以多去看看一些官方网站

反问

  1. 公司的前端团队是做什么业务的
  2. 前端学习上的建议

总结

没有问算法和框架,基本是看我入门的时间和项目以及简历上写的东西来问的,css 布局和 js 基础偏多,总体上面试官问得很轻松,在提问的时候基本都会给提示,引导我去回答,最后面试官建议我还是多去补补基础,系统地把整个 htmlcssjs 再学一下,然后技术面更集中一些(应该是看完简历上写了很多东西,然后基础又被问得不咋地吧)。

整个面试过程大概1个小时,问的东西其实不多,时间长主要还是因为自己答得不是很好,一个问题支支吾吾地拖太长时间了。。。。