搜狐焦点22级前端实习面经
题不难,就是我忘性太大了,唉……
1、写快排,我第一次写快排没写出口,给忘了,我感觉我后面写的方法是没啥问题的,面试官说不行,而且应该还有初始元素可以任选,我也说了可以任选初始基准数,但面试官好像没听进去(?),我也就没反驳
我自己是明白怎么写的和什么个思路,但嘴笨说出来面试官一个劲儿给我说不对
但我jiao得我写的是快排,从博客上找的阮一峰的写法,大家可以纠纠错
就是找基准数,小的移到左边,大的移到右边,然后递归
let quickSort = function(arr) { if (arr.length <= 1) { return arr; } let pivotIndex = Math.floor(arr.length / 2); let pivot = arr.splice(pivotIndex, 1)[0]; let left = []; let right = []; for (var i = 0; i < arr.length; i++){ if (arr[i] < pivot) { left.push(arr[i]); } else { right.push(arr[i]); } } return quickSort(left).concat([pivot], quickSort(right)); };
2、JavaScript创建对象的方式,如何实现一些类的属性和方法
指我刚写的构造函数原型,为什么要把函数写在原型对象上,有什么优点(这个我是看过的,忘了)
3、了解Vue的程度,问我看过原理吗,没看过就算了
4、css掌握情况,Bfc是什么,有什么特性(blablablabla)
为什么BFC之间会互不干扰(我不懂)
5、两栏布局的实现方式(flex,右边margin-left左边固定啥的,但我了解的方法没那么多也不深)
6、C++重载和重写的概念
7、什么是面向对象程序设计,面向对象程序设计的核心思想是什么
8、算法题:
const arr=[1,2,3,4,5,6]为一无重复数的整型数组
const target=6
输出一个二维数组,按从长到短输出
[
[1,1,1,1,1,1],
[1,1,1,1,2],
...,
[6]
]
后面生涯规划和反问问题我已经人麻了,就不写了