朋友推荐去平安子公司一账通去面试,没有初面,直接进入二面和三面,蛮简单的,过了,但放弃入职。下面谈谈面试题吧。前端
1.document.ready和onload的区别?vue
页面加载完成有两种事件,一是ready,表示文档结构已经加载完成(不包含图片等非文字媒体文件),二是onload,指示页 面包含图片等文件在内的全部元素都加载完成。(能够说:ready 在onload 前加载!!!)node
个人理解: 通常样式控制的,好比图片大小控制放在onload 里面加载;react
而:jS事件触发的方法,能够在ready 里面加载;webpack
2.关于一个变量提高的题目ios
function a(){}
var a
console.log(typeof a) //function复制代码
还有就是介绍项目经验巴拉巴拉。。。还问我接收不接收996,瞬间内心一万cnm,当他问个人时候,我以为是压力测试,我就说 若是正常的是996,是不接收的,若是项目急,接收加班和周六赶项目。。。说了下平安薪资体系,年终奖4.8个月薪资,百分之多少能拿到吧,通常人都能拿到,以上是二面,三面是项目经理,也是问了些项目,根据本身说的再提一些问题。。。很好应付,个人体验是,只要感到项目经理不是搞前端的,面试立场本身彻底hold住。。。而后就结束啦,哈哈哈。。。接下来就是人事打电话,准备好多东西,薪资证实,简历要输入平安简历库中心,还有iq,eq什么测试,到这一步我就没去作,好麻烦,都没告诉我给我多少薪资,人事说通过以上步骤才能定薪,后来果断放弃。。。没想到好事发生了,我司给我涨薪了。。。nginx
1.编程题,让我说直接jion(',')变成数组,而后再split(','),哈哈git
可是要求要递归,递归嘛,也简单哟,主要考察是否是数组,其次是递归结束条件github
精简版web
const deepFlatten = arr => [].concat(...arr.map(v => (Array.isArray(v) ? deepFlatten(v) : v)));复制代码
2.
更精简的实现
const groupBy = (arr, fn) =>
arr.map(typeof fn === 'function' ? fn : val => val[fn]).reduce((acc, val, i) => {
acc[val] = (acc[val] || []).concat(arr[i]);
return acc;
}, {});复制代码
plus:算法精简版推荐看github.com/Chalarangel… 蛮不错的
3.4.图形本身脑补吧,哈哈哈
1.物理分辨率是硬件所支持的,逻辑分辨率是软件能够达到的,互转的话乘以像素倍率
在iphone3gs的时候,逻辑分辨率是320*480,物理分辨率也是320*480
iphone4出了以后,逻辑分辨率和3gs同样是320*480,显示的内容是同样多的,可是物理分辨率变成了640*960,原来在3gs的一个像素内容,在iphone4上则填充了4个像素,所以虽然内容显示仍是同样多,可是iphone4s的屏幕精细度比3gs高了2倍,像素倍率是2.
iphone5/5s/SE逻辑分辨率是320*568,和iphone4相比,逻辑分辨率宽度不变,高度增长了,因此相比iphone4,宽度内容显示同样多,可是高度内容增长。而物理分辨率是640*1136,像素倍率和iphone4/4s同样,是2倍
iphone6的逻辑分辨率是375*667,比iphone4/4s/5/5s/SE逻辑分辨率都要大,因此显示的内容更多。物理分辨率是750*1334,因此和上边谈到的机型同样,仍然是2倍的像素倍率
iphone6plus逻辑分辨率是414*736,物理分辨率是1080*1920,像素倍率约等于2.6. 渲染像素是1242*2208。作设计图的时候,也是假设1242*2208的物理分辨率(3的倍率)来作图的,系统会把图片压缩到1080*1920。因此6plus作设计图的尺寸1242*2208是基于假设,实际物理分辨率是1080*1920。听说是由于产能还有耗电的考虑,之后性能提高,也许会直接用1242*22082. BFC(Block formatting context)直译为"块级格式化上下文"。它是一个独立的渲染区域,只有Block-level box参与, 它规定了内部的Block-level Box如何布局,而且与这个区域外部绝不相干。
3.同源是指,域名,协议,端口相同,三者有一个不一样,则为跨域
解决方案:
node代理,具体本身起个node服务,在node中转发来自浏览器的请求,node服务和浏览器请求要同源,而后转发携带具体参数,cookie...,转发到后端的跨域接口,转发库能够用axios,支持在node,和浏览器均可以使用(具体实现能够参照github)。
nginx配置代理(基础配置,能够参照我以前写的文章)
在react,vue中能够用webpack-dev-server配置代理
跨域资源共享cors,后端设置Access-Control-Allow-Origin:*
jsonp
。。。其余感受现实开发中,并非很实用
4.var reg = /^[\u4e00-\u9fa5]{1}[A-Z]{1}[A-Z_0-9]{5}$/
5.
三步
一、找基准(通常是以中间项为基准)
二、遍历数组,小于基准的放在left,大于基准的放在right
三、递归
function quickSort(arr){
//若是数组<=1,则直接返回
if(arr.length<=1){return arr;}
var pivotIndex=Math.floor(arr.length/2);
//找基准,并把基准从原数组删除
var pivot=arr.splice(pivotIndex,1)[0];
//定义左右数组
var left=[];
var right=[];
//比基准小的放在left,比基准大的放在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));
}
复制代码
6. 1.最高优先级是 (直接在标签中的设置样式,假设级别为1000)<div style="color:Red;"></div>
2.次优先级是(ID选择器 ,假设级别为100) #myDiv{color:Red;}
3.其次优先级是(类选择器,假设级别为10) .divClass{color:Red;}
4.最后优先级是 (标签选择器,假设级别是 1) div{color:Red;}
5.那么后代选择器的优先级就能够计算了啊
好比 .divClass span { color:Red;} 优先级别就是:10+1=11复制代码
7.。。。
下次更新剩余题目答案。。。
如今面试,小公司通常问框架和看你我的的学习能力,好比我公司,我通常看他的学习和研究能力,大公司通常看基础能力,我没怎么面过,不过网上不少都有文章参考。想要面试成功,本身要有扎实基础,业务能力,固然表达也很重要,我的的研究喜欢编码,一些公司也很看重。