JavaScript高频面试题(一)

一.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实践过优雅降级了,为那些无法支持功能的浏览器增加候选方案,使之在旧式浏览器上以某种形式降级体验却不至于完全失效。
2.渐进增强∶从被所有浏览器支持的基本功能开始,逐步地添加那些只有新式浏览器才支持的功能,向页面增加无害于基础浏览器的额外样式和功能的。当浏览器支持时,它们会自动地呈现出来并发挥作用。

六.你有哪些性能优化的方法
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实现布局刷新

你可能感兴趣的:(面试,JavaScript,HTML,javascript,es6,node.js,面试,html5)