搜狐焦点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]
]
后面生涯规划和反问问题我已经人麻了,就不写了
查看8道真题和解析