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

2019年前端面试常被问到的

时间:2023-04-03 01:13:51 HTML

问题不断更新。这是一篇超长的文章,是我面试时写的总结。另外,这是初级(1-3年)的前端面试,涉及的算法可能不会太多。2019.12.07更新本人也是前端新手,所以这篇文章可能更适用于新手。这里总结几个方面:HTMLCSSJavaScript框架小程序Others1.HTMLH5新特性的语义标注Header,footer,section,nav,aside,article...增强表单(输入类型)Color,date,email,number,range、电话音视频canvas地理位置getCurrentPosition();手表位置();清晰观察();拖动本地存储新事件Onresize:调整窗口大小在标签中添加。必须加上()不容易维护。进度问题DOM一级事件varoBtn=document.getElementById('btn');oBtn.onclick=fn;DOM二级事件oBtn.addEventListener('click',fn,false);oBtn.removeEventListener('click',fn,假);2。CSScss的定位有哪些Position:static;GeneralFlowpositioning(default)relative;相对定位,指的是元素本身,绝对不会脱离文档流;绝对定位,固定;固定定位,float:Left;Right;如果不知道具体的高度,就没法设置);在浮动元素底部添加一个块级元素,并设置css:clear:both;

父元素设置:overfloat:hidden;(超出内容会被隐藏);::after伪类方法:.clearfix::after{content:'';display:block;clear:both:}为父元素设置定位:如relative,绝对;元素的居中css2centering:要居中的元素的水平显示是inline/inline-block,然后是父元素text-aline:center;为块级元素设置宽度,然后margin:0auto;垂直行内元素(单行),设置高度和行高相同;内联元素(多行),设置上下padding相同;line-levelbox:smalliconandtitlealignmentsetting:vertical-align:middle;水平垂直居中绝对定位:top:50%;左:50%;要知道块级的宽和高,以及top和left的margin需要减去它的上半部分和左半部分(margin:-20px00-20px);css3horizo??ntalcenter:horizo??ntalparent:display:flex;弹性方向:行;证明内容:居中;垂直父级:显示:flex;弹性方向:行;对齐项目:居中;水平和垂直父级:display:flex;孩子:保证金:自动;3.JavaScriptES6新特性const和let解构赋值扩展运算符箭头函数ClassSymbolSet和MapSet():有序列表集合Promisestring:Templatestringfor...ofObject:简写解构赋值函数:箭头函数函数默认值数组去重ES6Set结合Array.from()方法Set结合扩展运算符ES5使用arr.indexOf(a),如果找到a,返回a的第一个下标,如果没有,返回-1functiondeRepeat(arr){varnewArr=[];for(vari=0;ifetchrequestfetch(url).then(function(resopnse){returnresponse.json();}).then(function(data){//第二个then是我们想要的东西console.log(data);}).catch(function(error){console.log(error);});Summary:fetch语法简洁,更具语义;基于标准Promise,支持async/await;但对IE支持不友好;fetchrequestwithoutcookieswitchorif,哪个性能更好?switch的性能比较好,它用的是index的方式,if是一个一个比较。闭包经典题:(有个面试考过一次,全错了,有些人永远不懂闭包,我就是其中之一)functionfun(n,o){console.log(o);返回{乐趣:函数(m){返回乐趣(m,n);}}};vara=fun(0);a.fun(1);a.fun(2);a.fun(3);varb=fun(0).fun(1).fun(2).fun(3);varc=fun(0).fun(1);c.fun(2);c.fun(3);//取消定义000;//取消定义012;//取消定义011;4.Framework类Vue和React的区别在于Vue.js组件之间的通信方式相似:它们都使用虚拟DOM并专注于UI层,路由和状态管理等其他功能由对等框架处理。HTML模板重新渲染优化:React会刷新整个组件树,Vue会根据依赖刷新。Vue是双向数据绑定,React是单向数据流。你用哪一个?总的来说,这其实是一个主观的问题我可以有很多自己的想法轻量级,速度更快,单页应用:vue(语法更简单,易于开发)移动应用,专业社区支持,大规模应用:React不管是哪一个,都没有太大区别到目前为止,笔者在两家公司工作过,现在是第二家,用的是vue,而且大部分受访的公司也用vue。所以总的来说,在深圳,Vue公司比较多。笔者还使用vue结合native.js做了一个IOS和Android的应用。一般来说,它不是很容易使用。不知道react-native怎么样,但是native.js给我的感觉就是社区不好。active,从发第一个求助帖到现在一个多月了,还没人回复,不过我的项目都上线了。5、小程序的各种IDopenID是每个微信用户的唯一标识,每次从微信官方获取的都是一样的。但是有一点要注意:小程序、微信公众号网页、app获取的openID是不一样的(虽然都是同一个微信)钥匙小程序前端调用wx.login()获取code,后端将code、appID和AppSecret发送给微信公众号,微信公众号会返回openID和session_key。五种跳转方式wx.navigateTo保持当前页面并跳转到应用内的一个页面。但是不能跳转到tabbar页面。使用wx.navigateBack返回到原始页面。小程序页面栈最多可达十级。wx.redirectTo关闭当前页面,跳转到指定页面。wx.reLaunch()与wx.redirectTo非常相似,先关闭内存中所有保留页面,然后转到指定页面getCurrentPages()可以获取页面栈最后:导航器标签也可以跳转6.其他移动端有什么解决方案?如何解决?