作业帮前端一面二面面经
2.你了解的CSS长度单位
3.display常见的值以及区别
4.你知道哪些元素默认是inline-block的
5.position属性的区别
6.子容器垂直水平居中
7.代码题。数组去重,不能用set。写了个简单版,然后面试官问,你怎么考虑原型上本来就存在的属性,会不会导致判断出错?如何避免?(当时没答上来,我回答了一个Object.create(null),但后面下来查资料发现可以用hasOwnProperty,面试官也应该想听到我说hasOwnProperty)
8.代码题。n*n数组,从a[0][0]走到a[n-1][n-1]有多少种走法。我写的是用递归,然后面试官说,这样子如果n的规模是几十几百你这算法就跑不动了。接着我给面试官说了一下dp(动态规划)的思路。这道题也确实该用递归。
9.反问环节
1.个人介绍
2.学校有前端的课程吗?
3.为什么要选vue这个框架?
4.vue生命周期函数
5.vue组件的通信
6.组件中的data为什么是个函数
7.JS解决单线程的方法
8.ES5、ES6的区别
9.ES6新加的东西,你知道的都说一遍
10.Class实现面向对象的原理。Class的继承说一下。
11.代码题。给定一个包含大写英文字母和数字的句子,找出这个句子所包含的最大的十六进制整数,返回这个整数的值。数据保证该整数在int表示范围内。例如:"012345BZ16" ,最大数“12345B”对应十进制为1193051。
function solve( s ) { // write code here // 记录最大的字符串 let maxstr = '' // 记录最大的值 let maxnum = 0 // 全局匹配符合要求的字符串 let arr = s.match(/[0-9A-F]+/g) // 记录当前执行的字符串的长度 let templen = 0 for(let i = 0; i < arr.length; i++){ // 这个if是用来过滤比之前运行过的字符串更短的字符串 // 短的字符串肯定比之前的数字小 // 当然还可以直接比较字符串的大小,然后再进行运算 if(arr[i].length >= templen){ templen = arr[i].length let temp = parseInt(arr[i],16) if(temp > maxnum){ maxstr = arr[i] maxnum = temp } } } return maxnum }