每日经典前端面试题
问题 1: CSS 引入的方式有哪些?
答案:css与HTML文档结合的4种方法:
① 使用link元素链接到外部的样式文件
② 在head元素中使用style元素来指定
③ 使用 CSS@import标记来导入样式表单
④ 在内部的元素中使用style属性来定义样式
问题 2: 行内元素有哪些?块级元素有哪些?CSS 的盒模型?
答案: 块级元素:div,p,h1,h2,h3,h4,form,ul,ol
行内元素:a,b,br,i,span,input,select
CSS 盒模型: content,padding,border ,margin
问题 3: link 和 @import 的区别是?
答案: 本质上,这两种方式都是为了加载 CSS 文件,但还是存在着细微的差别。
① 老祖宗的差别。link属于 XHTML 标签,而@import完全是 CSS 提供的一种方式。link标签除了可以加载 CSS 外,还可以做很多其它的事情,比如定义 RSS,定义 REL 连接属性等,@import就只能加载 CSS 了
② 加载顺序的差别。当一个页面被加载的时候(就是被浏览者浏览的时候),link引用的 CSS 会同时被加载,而@import引用的 CSS
会等到页面全部被下载完再被加载
③ 兼容性的差别。由于@import是 CSS2.1 提出的,所以老的浏览器不支持,@import只有在 IE 5 以上的才能识别,而link标签无此问题
④ 使用 DOM 控制样式时的差别。当使用 JavaScript 控制 DOM 去改变样式的时候,只能使用link标签,因为@import不是 DOM 可以控制的
问题 4:"==" 和 "===" 的不同
答案: 前者会自动转换类型,后者不会
问题 5: XHTML 和 HTML 有什么区别?
答案: HTML 是一种基本的 WEB 网页设计语言,XHTML 是一个基于 XML 的置标语言
最主要的不同:
① XHTML 元素必须被正确地嵌套
② XHTML 元素必须被关闭
③ 标签名必须用小写字母
④ XHTML 文档必须拥有根元素
问题 6: Doctype? 严格模式与混杂模式-如何触发这两种模式,区分它们有何意义?
答案: 用于声明文档使用那种规范 (HTML/XHTML),一般为严格模式和过度模式,基于框架的 HTML 文档
加入 XML 声明可触发,解析方式更改为 IE 5.5 拥有 IE 5.5 的 BUG
问题 7: 写出几种 IE 6 BUG 的解决方法
答案: ① 双边距 BUG,float引起的,使用display
② 3 像素问题,使用float引起的,使用dislpay:inline -3px
③ 超链接hover,点击后失效,使用正确的书写顺序
link,visited,hover,active
④z-index问题,给父级添加position:relative
⑤ png 图片透明失效,使用 JS 代码进行修改
⑥min-height最小高度,使用!important解决
⑦select在 IE 6 下遮盖,使用iframe嵌套
⑧ 为什么没有办法定义 1 px 左右的宽度容器?(IE 6 默认的行高造成的,使用overflow:hidden | zoom:0.08 | line-height:1px)
问题 8: IE 和 DOM 事件流的区别
答案: ① 执行顺序不一样
② 参数不一样
③ 事件加不加 on
④ this 指向问题
问题 1: 优先级算法如何计算?
答案: 重要性和来源的优先级排序从低到高是:
① 浏览器默认样式
② 用户在浏览器中定义的普通样式(normal 规则,不带 important 规则)
③ 开发人员定义的普通样式( normal 规则,不带 important 规则)
④ 开发人员定义特殊样式(带 important 规则)
⑤ 用户在浏览器中定义特殊样式(带 important 规则)
另外还有一些原则:
① 相同的样式在 CSS 规则后添加了!important的优先于没有添加的
② CSS 规则在文档中出现的顺序后面定义的的优先于前面定义的
③ 加了!important的优先于内联样式
④ 内联样式优先于用 link 引入的样式和页面上里的样式
问题 2: split() 和 join() 的区别?
答案: 前者是切割成数组的形式,后者是将数组转换成字符串
问题 3: ajax 请求的时候 get 和 post 方式的区别?
答案: ① 一个在 url 后面 一个放在虚拟载体里面
② 有大小限制
③ 安全问题
④ 应用不同 一个是论坛等只需要请求的,一个是类似修改密码的
问题 4: IE 和标准下有哪些兼容性的写法?
答案: ①Var ev = ev || window.event
②document.documentElement.clientWidth || document.body.clientWidth
③Var target = ev.srcElement||ev.target
前端常见题目个人思考题
1、你之前自认为做得最好的,最具有挑战的一项需求是什么,为什么?现在回头去看,还有哪些地方可以值得优化?
2、说一下 H5 中的离线存储有哪些?
1、谈一谈你做过的一个项目,业务逻辑模块如何划分的?
2、什么是 xss 漏洞,怎么防御?
1、 说一下你理解的 MVVM,画一下你的设计模式。
2、 说一下 H5 中的离线存储有哪些?
1、 请说出三种减少页面加载时间的方法。(加载时间指感知的时间或者实际加载时间)
2、 描述下reset.css 文件的作用和使用它的好处。