前端试题大综合练习(十)

xiaoxiao2021-02-28  66

1、null和undefined的区别? 解:null表示一个空的对象,转为数值时为0,undefined是一个空的原始值,转为数值是NAN; undefined的典型用法: 变量声明后没有定义时undefined; 函数调用需要的参数未赋值时undefind; 对象的属性没有赋值时undefined; 函数没有返回值时undefined; null的用法: 作为原型链的终点; 2、下列关于比较Ajax与Flash的优缺点,相关描述正确的是? Ajax的优势在意在于开放性,易用性及易于开发 Flash的优势在于多媒体处理,可以更容易的调用浏览器以外的外部资源 Ajax最主要的批评就是它可能破坏浏览器的后退功能 flash 文件经常会很大,用户第一次使用的时候需要忍耐较长的等待时间 答案:ABCD 解: Ajax的优势:1.可搜索性 2.开放性 3.费用 4.易用性 5.易于开发。  Flash的优势:1.多媒体处理 2.兼容性 3.矢量图形 4.客户端资源调度  Ajax的劣势: 1.它可能破坏浏览器的后退功能    2.使用动态页面更新使得用户难于将某个特定的状态保存到收藏夹中,不过这些都有相关方法解决。  Flash的劣势: 1.二进制格式 2.格式私有 3.性能问题 4.flash文件经常会很大,用户第一次使用的时候需要忍耐较长的等待时间 3、javascript继承的6种方法? 解: 1. 原型链继承 核心:将父类的实例作为子类的原型 缺点:来自原型对象的引用属性是所有实例共享的;创建子类实例时,无法向父类构造函数传参 2. 借用构造函数继承 核心:使用父类的构造函数来增强子类实例,等于是复制父类的实例属性给子类 优点:子类实例共享父类引用属性的问题;创建子类实例时,可以向父类传递参数 缺点:无法实现函数复用,每个子类都有父类实例函数的副本,影响性能 3. 组合继承(原型+借用构造) 核心:通过调用父类构造,继承父类的属性并保留传参的优点,然后通过将父类实例作为子类原型,实现函数复用 缺点:调用了两次父类构造函数,生成了两份实例(子类实例将子类原型上的那份屏蔽了) 4. 原型式继承 5. 寄生式继承 6. 寄生组合式继承 核心:通过寄生方式,砍掉父类的实例属性,这样,在调用两次父类的构造的时候,就不会初始化两次实例方法/属性,避免的组合继承的缺点 4、ajax原理、如何实现刷新数据及优点? 解:ajax是异步调用JS和XML,通过局部请求实现刷新局部页面。 实现:创建调用对象XMLHttpResquest;创建http请求及其URL,请求方式以及相应的参数;定义状态响应函数;xhr.open()、xhr.send();利用DOM和JS将获取到的数据渲染到页面中。 优点:实现了局部刷新,提高了用户体验;减轻了服务器的负担。 5、解释语言的特性有什么? 非独立 效率低 独立 效率高性 答案:AB 6、下面不属于ajax事件的是? ajaxComplete(callback) ajaxSuccess(callback) $.post(url) ajaxSend(callback) 答案:C 解:$.post(url)是ajax请求,是方法,jQ中的; ajax的事件是:  ajaxComplete(callback)  ajaxError(callback)  ajaxSend(callback)  ajaxStart(callback)  ajaxStop(callback)  ajaxSuccess(callback) 7、怎样优化网页性能? 请求数量方面:合并脚本和样式表,CSS Sprites,拆分初始化负载,划分主域 请求带宽方面:开启GZip,精简JavaScript,移除重复脚本,图像优化 利用缓存方面:使用CDN,使用外部JS和CSS,添加Expires头,减少DNS查找,使AjaX可缓存 页面结构方面:将样式表放在顶部,将脚本放在底部,尽早刷新文档的输出 代码校验方面:避免使用css表达式,避免重定向 8、如何判断当前脚本运行在浏览器还是node环境中? 解:判断全局对象GLobal是不是Window是则运行在浏览器中。 10、angularjs1中的服务实质上是 网络服务 单例对象 接口对象 函数调用 答案:B 11、flash和js通过什么类如何交互? ExtensionContex ExternalInterface IInterpolator FlexContentHolder 答案:B 14、new操作符具体干了什么? 解:创建一个空对象obj; var obj={}; 对象obj的原型指向构造函数Base的原型,隐式返回this; obj.__proto__=Base.prototype; 将Base函数的this指向obj; Base.call(obj); 15、documen.write和 innerHTML 的区别? 解:document.write只能同步执行;如果在window.onload之前执行,则在文档流中绘制内容;如果在window.onload之后执行,则会重绘整个页面。innerHTML是绘制某个元素的内容。没有此限制。 16、在jquery中,如果想要获取当前窗口的宽度值,下面哪个是实现该功能的? width() width(val) width innerWidth() 答案:A 解 width() 方法设置或返回元素的宽度(不包括内边距、边框或外边距)。    height() 方法设置或返回元素的高度(不包括内边距、边框或外边距)。 innerWidth() 方法返回元素的宽度(包括内边距)。 innerHeight() 方法返回元素的高度(包括内边距)。 outerWidth() 方法返回元素的宽度(包括内边距和边框)。 outerHeight() 方法返回元素的高度(包括内边距和边框)。 outerWidth(true) 方法返回元素的宽度(包括内边距、边框和外边距)。 outerHeight(true) 方法返回元素的高度(包括内边距、边框和外边距)。 17、哪些操作会造成内存泄漏? 解:内存泄漏指任何对象在不需要它之后仍然存在。  垃圾回收器定期扫描对象,并计算引用了每个对象的其他对象的数量。如果一个对象的引用数量为0(没有其他对象引用过该对象),或对该对象的惟一引用是循环的,那么该对象的内存即可回收。  setTimeout的第一个参数使用字符串而非函数的话,会引发内存泄漏。  闭包  控制台日志  循环(在两个对象彼此引用且彼此保留时,就会产生一个循环) 18、简述浏览器的本地存储 解:主要存储方式: cookie  sessionStorage  localStorage  indexedDB:是适合在本地存储大量非关系型数据,采取的是事件+异步回调进行操作。 19、异步加载和延迟加载 解:延迟加载用script标签的defer属性来定义,是立即下载,但延迟加载。 异步加载:并不一定按照指定的顺序进行加载,只适用于外部js文件。 20、http状态码有那些?分别代表是什么意思? 解: 1xx:信息性状态码,表示服务器接收到请求正在处理。  2xx:成功状态码,表示服务器正确处理完请求。  3xx:重定向状态码,表示请求的资源位置发生改变,需要重新请求。 301永久重定向,302临时重定向。  4xx:客户端错误状态码,服务器无法处理该请求。 404 not found  5xx:服务器错误状态码,服务器处理请求出错。 22、什么是 FOUC(无样式内容闪烁)?你如何来避免 FOUC? 解:主要是由于使用@inport造成,即使得浏览器先加在文档,在文档加载完成和css未加载完成这段时间没有样式;解决方法是在head标签中用link引入css文件使得CSS文件先下载。 23、iframe的优缺点? 优点:    1. 解决加载缓慢的第三方内容如图标和广告等的加载问题    2. Security sandbox    3. 并行加载脚本  缺点:    1. iframe会阻塞主页面的Onload事件    2. 即时内容为空,加载也需要时间    3. 没有语意 24、请说出三种减少页面加载时间的方法 解:优化图片 图片格式的选择 优化css 网址后加斜杠 给定图片的宽高 减少http请求

转载请注明原文地址: https://www.6miu.com/read-49298.html

最新回复(0)