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

前端面试题总结_0

时间:2023-03-31 11:30:34 CSS

还有7天,2018年已经过去了。回想一下,这段时间出去面试,遇到了很多面试题。以下是我的一些总结。这篇关于面试的文章我也会不定时更新文章。HTML1。告诉我您对HTML语义的理解?语义化就是根据内容(语义内容)的结构选择合适的标签(代码语义),方便开发者阅读和编写更优雅的代码,同时让浏览器爬虫和机器能够很好地解析。2、你对浏览器的内核了解多少?Trident内核:IE、MaxThon、TT、TheWorld、360、Sogou浏览器等[又名MSHTML]Gecko内核:Netscape6及以上、FF、MozillaSuite/SeaMonkey等Presto内核:Opera7及以上。【Opera内核原为:Presto,现为:Blink;】Webkit内核:Safari、Chrome等【Chrome:Blink(WebKit的一个分支)】3、谈谈对HTML5离线存储的理解。离线缓存是Html5的新特性之一。简单理解就是第一次加载后缓存数据,不用清缓存,下次没有网络的时候再加载即可,对于静态数据的网页或者游戏比较有用。当然,Html5的新特性并不是所有的浏览器都支持,离线缓存也是如此。反正目前不支持IE9(含)及IE9以下的浏览器。如果在移动端使用,应该是支持的。检测是否支持离线缓存也比较简单。详细使用方法请参考:https://www.cnblogs.com/wuzhiquan/p/4844258.html4.请说明cookies、sessionStorage、localStorage的区别。存储大小:cookie数据大小不能超过4k。sessionStorage和localStorage也有大小限制,但比cookie大,可以达到5M以上。Time:localStorage:存储持久化数据,除非主动删除数据,否则浏览器关闭后数据不会丢失;sessionStorage:当前浏览器窗口关闭后的数据自动删除。cookie:设置的cookie有效期至过期时间。即使窗口或浏览器关闭,您也可以设置其过期时间。存储位置:localStorage和sessionStorage都存储在客户端,不与服务端通信。Cookie数据总是在同源HTTP请求中携带(即使不需要),它会在浏览器和服务器之间来回传递。5、请描述一个网页从开始请求到最终显示的完整过程?一个网页从请求到最终显示的完整过程一般可以分为以下七个步骤:(1)在浏览器中输入网址;(2)发送给DNS服务器,获取域名对应的WEB服务器IP地址;(3)与WEB服务器建立TCP连接;(4)浏览器向WEB服务器的IP地址发送相应的HTTP请求;(5)WEB服务器响应请求,返回指定URL的数据,或者错误信息,如果设置了重定向,则重定向到新的URL地址;(6)浏览器下载数据后解析HTML源文件,在解析过程中实现页面的布局,解析完成后在浏览器中显示基本页面;(7)解析页面中的超链接并在当前页面显示,重复上述过程,直到没有超链接发送,完成所有数据的显示。6、webSocket如何兼容低端浏览器?AdobeFlashSocketActiveXHTMLFile(IE)基于多部分编码并发送基于长轮询XHRCSS1的XHR。如何让一个div垂直居中第一:定位后,根据div的宽高计算margin;第二:flex布局第三:transform:translate(-50%,-50%)(定位后);2.css!important>interlinestyle>id>class|property|pseudo-class>label|pseudo-element>wildcard定义的权重3.清除浮动的方法有哪些?1:给父元素的高度;2:让父元素一起浮动;3:清除:两者;4:定义伪类:after4.使用css实现连续动画效果动画:mymove5sinfinite;@keyframesmymove{from{top:0px;}to{top:200px;}}5.右边宽度固定,左边自适应。第一:显示:flex布局;第二:浮动;6.csshacks的理解看这篇文章:https://www.cnblogs.com/mumble/p/4576489.html7.隐藏一个元素visibility的方法有哪些:hidden;该属性只是简单的隐藏了一个元素,但是该元素所占的空间依然存在opacity:0;CSS3属性,设置0可以让一个元素完全透明position:absolute;设置一个大的left负值定位,让元素定位在可见区域之外display:none;该元素变得不可见,不再占用文档中的空间。变换:比例(0);设置一个元素无限缩小,该元素将不可见,并保留该元素原来的位置HTML5属性,效果与display:none相同;但是这个属性是用来记录一个元素的状态height:0;将元素的高度设置为0并消除边框过滤器:blur(0);CSS3属性,将某个元素的blur设置为0,让该元素在页面的JS1中“消失”。数组的操作方法有哪些?pop()删除数组中的最后一个元素;shift()删除数组的第一个元素;unshift()方法可以将一个或多个元素添加到数组的开头,并返回新的长度。push()将元素添加到数组的末尾;reverse()反转数组中元素的顺序;splice()添加/删除数组元素;sort()对数组进行排序;copyWithin()将指定位置的成员复制到其他位置;fill()填充数组;join()将数组转换为字符串;slice()浅拷贝数组的元素;indexOf()查找数组中是否存在元素并返回下标;includes()查找数组是否包含某个元素并返回一个布尔值;每次检测数组中的所有元素是否满足判断条件;some数组中是否有满足判断条件的元素;filter过滤原数组,返回新数组;map处理数组中的每个元素并返回一个新数组;reduce提供数组累加器合并为一个值;参数使用等更多方法和方法,大家可以自行了解。2.数组去重方法[...newSet([2,"12",2,12,1,2,1,6,12,13,6])]或使用for循环3.数据类型BooleanNullUndefinedNumberStringSymbol:(ECMAScript6新定义,Symbol生成一个全局唯一且唯一的值)Object:(Array,Function,Object)4.你对重绘和重排有什么理解?重绘:没有重新布局,只是元素的外观发生了变化;重排:重排是比较明显的变化,可以理解为渲染树需要重新计算,重排肯定会引起重绘。页面渲染初始化(这是无法避免的)DOM元素的几何属性发生变化:元素大小(宽度或高度)发生变化。DOM树的结构变化:如节点的增减(增加或删除可见的DOM元素)、移动、元素位置变化等。改变元素的部分样式,调整浏览器窗口的大小,出现滚动条,等将导致页面重新排列。//es6.ruanyifeng.com/#docs/module6.什么是functionthrottling,它有什么优点目的:从字面上可以理解,functionthrottling就是用来对函数进行节流,从而在一定程度上优化性能。例如,与非DOM交互相比,DOM操作需要更多的内存和CPU时间。尝试连续执行太多与DOM相关的操作会导致浏览器挂起,有时甚至会崩溃。尤其是在IE中使用onresize事件处理程序时会发生这种情况,它会在浏览器调整大小时连续触发。如果您尝试在oresize事件处理程序中进行DOM操作,其高频率的更改可能会使浏览器崩溃。再比如我们常见的搜索功能,我们一般会绑定keyup事件,每次按下键盘就搜索一次。但是我们的目的主要是在每次输入一些内容的时候进行搜索。为了解决这些问题,可以使用定时器来限制功能。函数节流的原则:有些代码不能不间断地连续重复执行。第一次调用该函数时,会创建一个计时器以在指定的时间间隔后运行代码。当第二次调用该函数时,它会清除前一个计时器并设置另一个计时器。如果前面的定时器已经执行过,这个操作就没有意义了。但是,如果之前的定时器还没有执行,实际上是被一个新的定时器代替了。目的是仅在执行功能的请求停止一段时间后才执行。http://www.cnblogs.com/LuckyW...7、你知道HTTP状态码有哪些,代表什么?常见的有200,304,400,401,404,405,500等,详情见下面地址http://tool.oschina.net/commons?type=58。谈谈你对闭包的理解。官方对闭包的解释是:一个有很多变量的表达式,和这些变量绑定的环境(通常是一个函数),所以这些变量也是表达式的一部分。太官方了,口口声声说。我认为闭包只是一个函数的函数,一个函数可以访问另一个函数范围内的变量。闭包的好处是:1.希望一个变量长期驻留在内存中;2.避免全局变量的污染。3.私有成员的存在。闭包的缺点:1.永久内存,增加内存占用。2.使用不当很容易造成内存泄漏。9.判断数据类型的方法有哪些vara=[1,2,3]1.最常见的判断方法:**typeof**alert(typeofa)---------->对象2。判断已知对象类型的方法:**instanceof**alert(ainstanceofArray)-------------->true3.**Object.prototype.toString**Object。原型.toString.call('');-------------->[objectString]4.**constructor**alert(c.constructor===Array)--------->true5。**jquery.type()**如果对象未定义或为null,则相应地返回“undefined”或“null”。jQuery.type(undefined)==="undefined"jQuery.type(null)==="null"如果对象有一个内部[[Class]]与浏览器的内置对象[[Class]],我们返回对应的[[Class]]名称。(有关此技术的更多详细信息。)jQuery.type(true)==="boolean"jQuery.type(3)==="number"jQuery.type("test")==="string"其他所有内容都将返回它的类型“对象”。关于js的面试题还有很多,后面会继续补充