当前位置: 首页 > Web前端 > HTML5

2018年驾考宝典采访总结

时间:2023-04-05 16:43:36 HTML5

大家好,我是驾考宝典。时间不知不觉进入了2018年的金九银十,下半年即将结束,想必很多小伙伴都已经在网上看到了各大厂的面试新题。同时,我也在驾考宝典工作了一年多。驾考宝典算不上一线大公司,但个人觉得还是可以和大家分享一些比较实用的面试题,不管是通过工作,平时积累,还是自学。主要是工作中用到的相关技术和遇到的坑,希望能互相鼓励。Q:JSpart1.什么是自执行函数,有什么优点?!function(){}()被称为“自执行函数”。优点是所有变量都在函数内部运行,可以避免生成全局变量。会受其影响。2、求出1-100中7的倍数和包括7在内的所有数字,最后放入数组中functioncalculate(){vararr=[];varreg=/7/;对于(vari=1;i<=100;i++){reg.test(i)||(我%7==0)?arr.push(i):arr;}返回arr;}console.log(calculate());更紧凑的版本是?3、为什么0.1+0.2!=0.3js没有float类型也没有int类型。浏览器在解析十进制的时候会转成二进制,十进制转二进制的时候js会丢失精度。0.1+0.2在0.30000004之后会得到无限小数,所以正确的做法是parseFloat((0.1+0.2).toFixed(10))4.对数组进行排序,比如vararr=[{name:'a',value:21},{名称:'b',值:10},{名称:'c',值:-1},{名称:'d',值:1}];怎么写;如果使用箭头函数输出,()=>{}和()=>()之间的区别是What,每个都会输出什么。如果数组是这样的vararr=[5,20,40,15];使用箭头函数输出,()=>{}和()=>(),输出什么。为什么没有实现我们想要的排序以及如何处理。vardemo=arr.sort((a,b)=>(a-b));控制台日志(演示);如果是二维数组vararr=[[30,-5,0,5],[100,50,20],[1,15,10]];以及如何去做。for(vari=0;i;varstr='';for(varj=0;j'+";"}str+='<'+arr[arr.length-1]+'>'console.log(str);6、用js匹配同一个questionId,三个相同的questionId会变绿,四个变红,重新渲染到页面。vardata=[{projectId:3,questionId:1124900},{projectId:2,questionId:1124900},{projectId:1,questionId:1124900},{projectId:1,questionId:1120900},{projectId:3,questionId:1119600},{projectId:2,questionId:1119600},{projectId:3,questionId:1119500},{projectId:2,questionId:1119500},{projectId:1,questionId:1119500},{projectId:3,questionId:836200},{projectId:2,questionId:836200},{projectId:3,questionId:836100},{projectId:2,questionId:836100}]varobj={};varnewData=data.length;for(vari=0;i")for(vari=0,len=data.length;i"+data[i].questionId+"");}html.push("")varconDom=document.getElementById("xxx");conDom.innerHTML=html.join("");7、用最少的原生JS实现文本超出...显示varoBox=document.getElementById('box');vardemoHtml=oBox.innerHTML.slice(0,10)+'...';oBox.innerHTML=demoHtml;8、如何得到数据,即123...10、102等,转换成对应的一、二、三...十、一百零二。9、如何实现移动端通用的字数统计,无论是递增还是递减,兼容PC端的复制、粘贴、撤销等操作,实时统计,支持emoji表情统计在移动端。10、define和requirewithinputpropertychange事件有什么区别。总之,define定义模块,require加载模块,模块依赖声明是非常重要的一步。11.我们都知道dom,什么是bom。BOM是浏览器对象模型,DOM是文档对象模型。前者对浏览器本身进行操作,而后者对浏览器中的内容(可视为容器)进行操作。例如窗户。打开()。12、如何优雅地使用原生JS实现textarea的高度随着内容的增加而自动增加。13、如何监听app自带的返回键,以及Android手机中的物理返回键。产品需要在前端写一个h5,里面有几个音频或者视频,不和客户端交互。当用户点击应用的返回按钮时,如何暂停正在播放的文件。并处理大多数安卓手机的兼容性。14、你有没有一个通用的思路,把所有的html内容一键转成图片?html2canvas.js插件bug太多,有替代方案吗?15、支付宝芝麻信用目前是静态的。如何让小白点从零跳到对应的位置,对应的分数和文案。16、移动轮播的原理是什么,比如swiper3.js(目前4)。当swiper.js存在兼容性问题时,是否有轻量级替代方案。17.iscroll.js有哪些替代方案,它们的优缺点是什么?18、一键切换中英文,前端如何实现。19.你用过模板渲染引擎吗?与传统的串联字符串相比有哪些优点和缺点。20、JS数据类型的判断方式有哪些,它们之间有什么区别。21、什么是防抖和节流。22、延迟加载有哪些方式,什么是阻塞方式。23、JSON全称是什么,JSON.parse()和JSON.stringify()有什么区别。24、你是否理解移动端的点击穿透和滚动穿透,你解决了吗?25、移动端点击延迟300ms,如何处理。26.点击和输入的区别。在实际的应用场景中,当用户点击input改变类型的时候,你会怎么处理。27、$(document).on("click",function(){})和$(document).on("click",".xxx",function(){})的区别。28、jQ的on、bind、live、delegate有什么异同?29.移动端和PC端jQ版本的选择有区别吗?如果有,相应的规格和原因是什么?30.雅虎军规35条(前端性能优化)。31.什么是回流和重绘。32.let和var的区别。33.原生js上传图片有哪些注意事项?layout、css、framework暂时不问了。这次先分享给大家。这是我日常工作积累的一部分。和大家的面试题比起来,简直不值一提。喜欢的朋友可以收藏下来。欢迎在评论区补充更多实用的坑。我会继续更新的,下次见~