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

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请求

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

明致成

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值