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

Web前端经典面试题(二)

时间:2023-04-02 14:33:51 HTML

上次由于时间有限,只分享了部分前端面试题,所以本文继续分享前端经典面试题1.A和A的区别堆栈和队列?栈的插入和删除操作都是在一端进行的,而队列的操作是在两端进行的。队列是先进先出,栈是先进先出。栈只允许在链表的尾部进行插入和删除,而队列只允许在链表的尾部插入和在头端进行删除。2、http和https有什么区别?如何灵活运用?A。http是运行在TCP之上的HTTP协议。传输的内容都是明文,客户端和服务端都无法验证对方的身份。b.https表示HTTP运行在SSL/TLS之上,而SSL/TLS运行在TCP之上。所有传输的内容都是加密的,加密采用对称加密,但对称加密密钥是用服务器端证书进行非对称加密的。此外,客户端可以验证服务器的身份。如果配置了客户端认证,服务器端也可以验证客户端的身份。负担,但仍有许多局限性。第一:每个特定域名下最多生成20个cookie1.IE6以下版本最多生成20个cookie2.IE7及以上版本最后可以生成50个cookie。3.Firefox最多有50个cookie4.Chrome和Safari没有硬性限制。IE和Opera会清除最近最少使用的cookie,Firefox会随机清除cookie。cookie的最大大小约为4096字节。为了兼容性,一般不能超过4095字节。IE提供了一个可以持久化用户数据的存储,叫做userdata,从IE5.0开始支持。每个数据最大128K,每个域名最大1M。这个持久化的数据是放在缓存中的,如果不清除缓存,它会一直存在。优点:极高的扩展性和可用性1.通过良好的编程,控制cookie中存储的session对象的大小。2、通过加密和安全传输技术(SSL),降低cookie被破解的可能性。3、cookie中只存放不敏感的数据,即使被盗也不会有什么大的损失。4.控制cookies的生命周期,使其不会永远有效。小偷很可能得到过期的cookie。缺点:1.`Cookie`的数量和长度有限制。每个域最多只能有20个cookie,每个cookie的长度不能超过4KB,否则会被截断。2.安全问题。如果cookie被某人拦截,则该人可以获得所有会话信息。即使加密也无济于事,因为拦截器不需要知道cookie的含义,他只要按原样转发cookie就可以达到目的。3.部分状态无法在客户端保存。例如,为了防止重复提交表单,我们需要在服务器端保留一个计数器。如果四个。position:absolute和float属性的异同:在内联元素上设置`float`和`absolute`属性可以使元素脱离文档流,可以设置它的宽高。不同点:float还是会占据position,position会覆盖documentflow中的其他元素。5.什么是CSS选择器?哪些属性可以继承?优先级算法是如何计算的?1.id选择器(#myid)2.类选择器(.myclassname)3.标签选择器(div,h1,p)4.相邻选择器(h1+p)5.子选择器(ul>li)6.后代选择器(lia)7.通配符选择器(*)8.属性选择器(a[rel="external"])9.伪类选择器(a:hover,li:nth-child)可继承样式:font-sizefont-family颜色,文本缩进;不可继承的样式:borderpaddingmarginwidthheight;优先就近原则,权重相同的样式定义最接近;loaded样式最后一个Imported定位为准;优先级为:!important>id>class>tagimportant优先级高于inline,但inline优先级高于id。在页面上导入样式时使用link和@import有什么区别?(1)link是一个XHTML标签,除了加载CSS外,还可以用来定义RSS,定义rel连接属性等;而@import是CSS提供的,只能用来加载CSS;(2)页面加载时,会同时加载链接,@import引用的CSS会等到页面加载完成后才加载;(3)import是CSS2.1提出的,只能被IE5及以上识别,而link是XHTML标签,不存在兼容性问题;7.常见的浏览器内核有哪些?Trident内核:IE、MaxThon、TT、TheWorld、360、搜狗浏览器等。【又称MSHTML】Gecko内核:Netscape6及以上、FF、MozillaSuite/SeaMonkey等Presto内核:Opera7及以上。【Opera内核原为:Presto,现为:Blink;】Webkit内核:Safari、Chrome等【Chrome:Blink(WebKit分支)】八。为什么要初始化CSS样式。由于浏览器兼容性问题,不同的浏览器对某些标签的默认值不同。如果不对CSS进行初始化,浏览器之间的页面显示往往会存在差异。当然,初始化样式会对SEO产生一定的影响,但不能两者兼有,而是尽量以影响最小的方式进行初始化。9、js有哪些内置对象?Object是JavaScript中所有对象的父对象数据封装类对象:Object、Array、Boolean、Number和String其他对象:Function、Arguments、Math、Date、RegExp、Error10.Javascript作用域?全局函数无法查看局部函数内部细节??,但局部函数可以查看其上层函数的细节,直至全局细节。当需要从局部函数中寻找属性或方法时,如果当前作用域没有找到,就会向上层作用域寻找全局函数。这种组织形式就是作用域链。11.对JSON的理解?JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式。它基于JavaScript的一个子集。数据格式简单,易于读写,占用带宽小。例如:{"age":"12","name":"back"}JSON字符串转换为JSON对象:varobj=eval('('+str+')');varobj=str.parseJSON();varobj=JSON.parse(str);JSON对象转JSON字符串:varlast=obj.toJSONString();varlast=JSON.stringify(obj);12.同步和异步的区别?同步的概念应该来自OS中同步的概念:不同的进程为了共同完成某项工作而进行调整(通过阻塞、唤醒等)。同步强调的是Sequence。谁先来。异步没有这种顺序。同步:浏览器访问服务器请求,用户看到页面刷新,重新发送请求,等待请求完成,页面刷新,出现新内容,用户看到新内容,进行下一步.异步:浏览器访问服务器请求,用户正常操作,浏览器后台发起请求。请求完成后,页面不会刷新,会出现新的内容,用户会看到新的内容。(待完善)十三。position的值,relative和absolute是相对于谁定位的?absolute:生成一个绝对定位的元素,相对于最近的非静态定位的父元素定位。fixed(不被旧的IE支持)生成绝对定位的元素,通常相对于浏览器窗口或框架定位。relative生成??一个相对定位的元素,相对于它在正常流中的位置定位。静态默认值。没有定位,正常流中出现的元素sticky生成粘性定位元素,容器的位置按照正常文档流计算十四.异步加载和懒加载1.异步加载方案:动态插入script标签2.通过ajax获取js代码,通过eval执行3.给script标签添加defer或async属性4.创建并插入一个iframe让它执行js异步加载5.延迟加载:有些js代码在页面初始化的时候不是马上需要,后面才需要