1.讲一下排序,给一个不懂快排序的人讲快排,复杂度,为什么它叫快排序?
参考
2.个按照某个位置旋转的数组(连续且有序)求中位数,例如[7,8,9,1,2,3,4,5,6],复杂度,如何降到比n更低?
思路:先找到最小的数,也就是还没翻转时arr[0]这个数。然后就可以算出中位数的位置了。
publicclassfindNumInRotateArr{publicstaticdoubleminNumberInRotateArray(int[]nums){if(nums==null||nums.length==0){return0;}intleft=0;intright=nums.length-1;while(left<right){intmid=left+((right-left)>>1);if(nums[mid]<nums[right]){right=mid;}elseif(nums[mid]>nums[right]){left=mid+1;}else{right--;}}intsize=nums.length;if(size%2==1){returnnums[(left+size/2)%size];}else{return(double)(nums[(left+size/2)%size]+nums[(left+(size-1)/2)%size])/2;}}publicstaticvoidmain(String[]args){int[]arr={6,7,8,1,2,3,4,5};System.out.println(minNumberInRotateArray(arr));}}
3. es6的语法特性,如何给一个不懂的人讲symbol,应用场景有哪些?应用场景1:使用Symbol来作为对象属性名(key)应用场景2:使用Symbol来替代常量应用场景3:使用Symbol定义类的私有属性/方法
详细的请看
4.箭头函数和普通的函数有什么不同,如何判断一个函数是普通函数还是箭头函数?this的指向问题
箭头函数是普通函数的简写,可以更优雅的定义一个函数,和普通函数相比,有以下几点差异:
1、函数体内的 this 对象,就是定义时所在的对象,而不是使用时所在的对象。
2、不可以使用 arguments 对象,该对象在函数体内不存在。如果要用,可以用 rest 参数代替。
3、不可以使用 yield 命令,因此箭头函数不能用作 Generator 函数。
4、不可以使用 new 命令,因为:
没有自己的 this,无法调用 call,apply。
没有 prototype 属性 ,而 new 命令在执行时需要将构造函数的 prototype 赋值给新的对象的__proto__
new 过程大致是这样的:
functionnewFunc(father,...rest){varresult={};result.__proto__=father.prototype;varresult2=father.apply(result,rest);if((typeofresult2==="object"||typeofresult2==="function")&&result2!==null){returnresult2;}returnresult;}
5.圣杯布局,有几种办法,不用float的方式有那种?(顺便给我补充了flex的一些其他知识点)
参考
6.positon中relative fixed absolute区别
static
默认值,没有定位,元素出现在正常的流中,即忽略 top, bottom, left, right 或者 z-index 声明
absolute
生成绝对定位的元素,相对于 static 定位以外的第一个父元素进行定位。
元素的位置通过 "left", "top", "right" 以及 "bottom" 属性进行规定。
特征:脱离正常流
fixed
生成绝对定位的元素,相对于浏览器窗口进行定位。
元素的位置通过 "left", "top", "right" 以及 "bottom" 属性进行规定。
特征:脱离正常流
relative
生成相对定位的元素,相对于其正常位置进行定位。
因此,"left: 20" 会向元素的 left 位置添加 20 像素。
特征:不会脱离正常流
absolute与fixed
absolute与relative
另外提下sticky:
position:sticky是css定位新增属性;可以说是相对定位relative和固定定位fixed的结合;它主要用在对scroll事件的监听上;简单来说,在滑动过程中,某个元素距离其父元素的距离达到sticky粘性定位的要求时(比如top:100px);position:sticky这时的效果相当于fixed定位,固定到适
7.promise的实现,一个有prosmise 有两个then 有一个settimeout 以及普通console.log的打印顺序
我曾经写过一篇,请过目
8.会如何实现提案中的flat函数(参数为几就拆解几层数组)
详细请阅读
//reduce+递归functionflat(arr,num=1){returnnum>0?arr.reduce((pre,cur)=>pre.concat(Array.isArray(cur)?flat(cur,num-1):cur),[]):arr.slice();}constarr=[1,2,3,4,[1,2,3,[1,2,3,[1,2,3]]],5,"string",{name:"弹铁蛋同学"}]flat(arr,Infinity);//[1,2,3,4,1,2,3,1,2,3,1,2,3,5,"string",{name:"弹铁蛋同学"}];
相关推荐前端面试128问汇总(含超详细答案)如何和面试官吹嘘一下我的Vue项目性能优化
「面试必问」leetcode高频题精选
经常需要谷哥的ccs问题完美方案汇总
【面试准备】每日前端面试题 - 43 阿里面试热门题
【面试准备】每日前端面试题 - 42
【面试准备】每日前端面试题 - 41(react篇)
【面试准备】每日前端面试题 - 40 (VUE篇)
【面试准备】每日前端面试题 - 39 (js篇)
【面试准备】每日前端面试题 - 38 (CSS篇)
【面试准备】每日前端面试题 - 37
【面试准备】每日前端面试题 - 36
【面试准备】每日前端面试题 - 35【面试准备】每日前端面试题 - 34
【面试准备】每日前端面试题 - 33(头条面试题)
【面试准备】每日前端面试题 - 33
【面试准备】每日前端面试题 - 32
【面试准备】每日前端面试题 - 31【面试准备】每日前端面试题 - 30【面试准备】每日前端面试题 - 29 (头条面试题)【面试准备】每日前端面试题 - 28 (常考题型)【面试准备】每日前端面试题 - 27【面试准备】每日前端面试题 - 26【面试准备】每日前端面试题 - 25(头条试题)
【面试准备】每日前端面试题 - 24(腾讯面试题))
【面试准备】每日前端面试题 - 23
【面试准备】每日前端面试题 - 22 (头条笔试题)
【面试准备】每日前端面试题 - 21 (贝壳笔试题)
【面试准备】每日前端面试题 - 20
【面试准备】每日前端面试题 - 19
【面试准备】每日前端面试题 - 18
【面试准备】每日前端面试题 - 17
【面试准备】每日10道前端面试题 - 16
【面试准备】每日10道前端面试题 - 15
【面试准备】每日10道前端面试题 - 14
【面试准备】每日10道前端面试题 - 13
【面试准备】每日10道前端面试题 - 12
【面试准备】每日10道前端面试题 - 11
【面试准备】每日10道前端面试题 - 10
【面试准备】每日10道前端面试题 - 09
【面试准备】每日10道前端面试题 - 08
【面试准备】每日10道前端面试题 - 07
【面试准备】每日10道前端面试题 - 06
【面试准备】每日10道前端面试题 - 05
【面试准备】每日10道前端面试题 - 04
【面试准备】每日10道前端面试题 - 03
【面试准备】每日10道前端面试题 - 02
【面试准备】每日10道前端面试题 - 01
移动端1px问题应该如何解决?
为什么我们要熟悉这些通信协议?【精读】
前端面向对象,高阶JS应用!
面试前必读!!!原生JS补给(上)
前端p6笔试题,你可以答上多少个?
每天都在用class,你到底对它了解多小?
前端工程师必须掌握的几个JavaScript设计模式及场景应用
【JS进阶深挖】完全弄懂数据类型转换(下)
【收藏系列】JS灵魂之问(下) - 附个人成长经验分享
【收藏系列】JS灵魂之问, 是否有offer看你接到多少个(中)
【收藏系列】JS灵魂之问, 请问你能接得住几个?(上)
【大厂面试】20道超高频题目【JS进阶深挖】完全弄懂数据类型转换(上)前端架构师最终面试题!48道题JS继承题目【面试官再也难不倒你了系列】神奇的arguments笔试题【一天突破一个知识点】45道Promise面试题【面试官再也难不倒你了系列】40道this面试题!面试官再也难不到你了!
点在看的人特别帅/美