JS高频面试题(一)

一.CSS中link和@import的区别是?
(1).link属于HTML的标签,而@import是CSS提供的。
(2).页面加载时,link会被同时加载,而@import引用的CSS会等到页面被加载完再加载。
(3).import只是IE5上才能识别,而link是HTML标签没有兼容问题
二.如何实现浏览器内多个标签页之间的通信?
调用localstorge,cookies等本地存储方式
三.new操作符具体干了什么?
1.创建一个空对象,并且this变量引用该对象,同时还继承了该函数的原型
2.属性和方法被加入到this引用对象中
3.新创建的对象由this所引用,并且最后隐式的返回this
四document.write和innerHTML的区别
1.document.write只能重绘整个页面
2.innerHTML可以重绘页面的一部分
五.什么叫优雅降级和渐进增强?
1.优雅降级:站点在所有新式浏览器中都能正
常工作,如果用户使用的是老式浏览器,则代码会检查以确认它们是否能正常工作.由于IE独特的盒模型布局问题,针对不同版本的IE的Hack实践过优雅降级了,为那些无法支持功能的浏览器增加候选方案,使之在旧式浏览器上以某种形式降级体验却不至于完全失效。
1.优雅降级:站点在所有新式浏览器中都能正
常工作,如果用户使用的是老式浏览器,则代码会检查以确认它们是否能正常工作.由于IE独特的盒模型布局问题,针对不同版本的IE的Hack实践过优雅降级。
六.你有哪些性能优化的方法
1.减少http请求次数:css sprites,Js、CSS源码
压缩、图片大小控制合适;网页Gzip,CDN托管,data缓存,图片服务器
2.前端模板JS+数据,减少由于HTML标签导致的带宽浪费,前端用变量保存AJA×请求结果,每次操作本地变量,不用请求,减少请求次数
3.用innerHTML代替DOM操作,减少DOM操作次数,优化javascript性能
4.当需要设置的样式很多时设置className而不是直接操作style
5.少用全局变量、缓存DOM节点查找的结果。减少IO读取操作
6.避免使用CSS Expression (css表达式)又称
Dynamic properties(动态属性)
7.图片预加载,将样式表放在顶部,将脚本放在底部,加上时间戳
七.JavaScript对象的几种创建方式
1.工厂模式
2.构造函数模式
3.原型模式
4.混合构造函数和原型模式
5.动态原型模式
6.寄生构造函数模式
7.稳妥构造函数模式
八.JavaScript的继承的六种方法
1.原型链继承
2.借用构造函数继承
3.组合继承(原型+借用构造)
4.原型式继承
5.寄生式继承
6.寄生组合式继承
九.AJAX的过程是怎样的?
1.创建XMLHttpRequest对象,也就是创建一个异步调用对象
2.创建一个新的Http请求,并指定该http请求的方法,URl及验证信息
3.设置响应HTTP请求状态变化的函数
4…发送http请求
5.获取异步调用返回的数据
6.使用JavaScript和DOM实现布局刷新

猜你喜欢

转载自blog.csdn.net/qq_45279574/article/details/109144208