前端面试题及答案(1)
来源:互联网 发布:lol物品数据库 编辑:程序博客网 时间:2024/05/19 11:48
(1) call() 和 apply() 的区别
相同点:改变作用域(借用别人的方法来调用)
a.call(b) a.apply(b) a可调用b的所有方法
a.getName.call(b) a.getName.apply(b) a作执行时上下文对象调用b的getName()方法
不同点:传递参数的方式不同
a.call(b,arg1,arg2,arg3,...) 参数单个传递
a.apply(b,[arg1,arg2,arg3,...]) 参数封装成数组传递
a.getName.call(b,arg1,arg2,arg3) = a.getName.apply(b,arguments)
(2) 谈谈你对web标准的理解,以及对w3c组织的认识
web标准就是将结构(html)、表现(css)、行为(js)三者分离,使其更具模块化
w3c对web标准提出了规范化的要求(代码规范):
结构:(1)标签字母小写
(2)标签闭合
(3)标签不允许随意嵌套
表现和行为:(1)尽量使用外链css样式表和js脚本,从而达到结构、表现和行为三者分离,符合规范,同时提高页面渲染速度,提高用户的体验
(2)样式与标签的分离,更合理的语义化标签,使内容能被更多的用户所访问、内容能被更广泛的设备所访问、更少的代码和组件, 从而降低维护成本、改版更方便
(3)不需要变动页面内容,便可提供打印版本而不需要复制内容,提高网站易用性
(3) link和@import导入样式的区别
link:<link rel="stylesheet" type="text/css" href="../main.css">
@import:<style type="text/css" media="screen"> @import url("CSS文件"); </style>
link是一个html标签,而@import是一个css标签;
link除了调用css外还可以有其他作用譬如声明页面链接属性,声明目录,rss等等,而@import就只能调用css;
link引用CSS时,在页面载入时同时加载,@import需要页面网页完全载入以后加载;
link是XHTML标签,无兼容问题;@import是在CSS2.1提出的,低版本的浏览器不支持;
link支持使用Javascript控制DOM去改变样式,而@import不支持。
(4) doctype的作用,严格模式与混杂模式的区别,有何作用?
<!DOCTYPE>声明位于文档最前面,告知浏览器解析器用什么文档类型规范来解析这个文档。
严格模式的排版和js运作模式是:以该浏览器支持的最高标准运行
混杂模式:页面以宽松的向后兼容的方式显示,模拟老式浏览器的行为以防止站点无法工作
DOCTYPE不存在或格式不正确时会导致文档以混杂模式出现
(5) css中如何设置英文首字母大写
text-transform: capitalize | uppercase | lowercase
(单词首字母大写) (全大写) (全小写)
(6) px和em,rem的区别
px:相对长度单位,px相对当前显示屏幕分辨率而言(屏幕上最小的一个点)
em:相对长度单位,相对于当前对象内文本的字体尺寸,若未设定,则相对于浏览器默认的字体尺寸,会继承父级元素的字体大小,若父元素是16px,子元素是7.5em,则子元素就是12(0.75*16)px
rem(浏览器支持还不是很理想):相对大小,但相对的只是HTML根元素。这个单位可谓集相对大小和绝对大小的优点于一身,通过它既可以做到只修改根元素就成比例地调整所有字体大小,又可以避免字体大小逐层复合的连锁反应。目前,除了IE8及更早版本外,所有浏览器均已支持rem。对于不支持它的浏览器,应对方法也很简单,就是多写一个绝对单位的声明:p {font-size:14px; font-size:.875rem;},这些浏览器会忽略用rem设定的字体大小。
(7) 一个web页面的生命周期是什么
页面的生命周期一般只指从请求页面到卸载页面的过程。这之间又具体分以下几个阶段。
1、页请求:页请求发生在页面生命周期开始之前,用户请求页面时,asp.net将确定是否需要分析和编译页。
2、开始:在开始阶段,将设置页属性,如request和response。在此阶段,页还将确定请求是回发请求还是新请求,并设置ispostback属性。
3、页初始化:在初始化期间可以使用页中的控件。并设置控件的ID属性。
4、加载:在加载期间,如果当前请求是回发请求,则将使用视图状态和控件状态恢复的信息加载控件属性。
5、验证:在验证期间,将调用所有的验证程序控件的validate,此方法将设置各个验证程序控件和页的isvalidate属性。
6、回发事件处理:如果请求是回发请求,则将调用所有的事件处理程序。
7、呈现:在呈现之前,会对页和所有控件保存视图状态。在呈现阶段中,会对每个控件调用render方法,它会提供一个文本编写器,用户将控件的输出写入到response属性和outputstream中。
8、卸载:完全呈现页,并将页面发送到客户端,准备对其该页后,将调用卸载。此时将卸载页属性并执行清理。
行内元素:一个元素占一行,可改变宽高;
内联元素:不可设宽高,margin和padding都是左右有效,上下无效
(9) 介绍一下你对浏览器内核的理解
浏览器内核就是用来渲染网页内容的,将网页的代码转换为最终你看得见的页面。
Trident内核:IE浏览器使用的内核,360浏览器、搜狗浏览器等都使用此内核
Gecko内核:火狐浏览器的内核
KHTML(linux):Konqueror
Webkit:Safari、android
Chromium:chorm
Presto:opera
(10) 谈谈你对html语义化的理解
根据内容的结构化(内容语义化),选择合适的标签(代码语义化)便于开发者阅读和写出更优雅的代码,同时让浏览器的爬虫和机器很好地解析
(11) css选择符有哪些?哪些属性可以继承?
基本可以分为:通配选择器,标签选择器,类选择器(E{}),ID选择器(#ID{}),{简单属性选择,具体属性选择,根据部分属性值选择,特定属性选择(E[attr]{})},从结构上来分还有后代选择器(E1 E2{}),子元素选择器(E1>E2{}),相邻兄弟选择器以及伪类(:hover)。可以继承的有 font-size font-family color 不可以继承的有 border padding margin background-color width height等
(12) 前端页面由哪三层构成,分别是什么?作用是什么?结构层(structural layer) 由 HTML 或 XHTML之类的标记语言负责创建。标签,也就是那些出现在尖括号里的单词,对网页内容的语义含义做出了描述,但这些标签不包含任何关于如何显示有关内容的信息。例如,P标签表达了这样一种语义:“这是一个文本段。” 表示层(presentation layer) 由 CSS 负责创建。 CSS对“如何显示有关内容”的问题做出了回答。 行为层(behaviorlayer) 负责回答“内容应该如何对事件做出反应”这一问题。这是 Javascript 语言和 DOM主宰的领域。(13) jquery的优缺点是什么? 优点:实现脚本与页面的分离;最少的代码做最多的事;性能好;很多厂商支持该框架;有大量可用的插件 缺点:不能向后兼容;同时使用多个插件易有冲突;稳定性不强;jQuery核心代码库对动画和特效的支持相对较差
(14) 写出几种IE6 BUG的解决方法
1.双边距BUG float引起的 使用display:inline或display:block明确其元素类型 2.3像素问题 使用float引起的 使布局在同一行上的元素都加上float浮动 3.超链接hover 点击后失效 使用正确的书写顺序 link visited hover active 4.Ie z-index问题 给父级添加position:relative 5.Min-height 最小高度 !Important 解决 6.select 在ie6下遮盖 使用iframe嵌套 7.为什么没有办法定义1px左右的宽度容器(IE6默认的行高造成的,使用over:hidden,zoom:0.08 line-height:1px)
- 前端面试题及答案(1)
- 前端面试题及答案(2)
- 前端面试题及答案(3)
- 腾讯前端题面试题(一)及答案
- web前端面试题及答案整理(一)
- web前端面试题及答案整理(二)
- 2016最新前端面试题(及答案)
- 常见前端面试题及答案(下)
- 常见前端面试题及答案(下)
- 常见前端面试题及答案(下)
- 常见前端面试题及答案(下)
- 常见前端面试题及答案(上)
- 常见前端面试题及答案(下)
- 常见前端面试题及答案(下)
- 常见前端面试题及答案(下)
- 2017前端面试题及答案总结(一)
- 2017前端面试题及答案总结(二)
- 美团前端面试题及答案
- 用brew在mac上安装mysql
- ILI百度指数
- 认识onNewIntent
- 爬取知乎用户信息
- 剑指offer--二叉树的深度
- 前端面试题及答案(1)
- ArrayList类的方法里面返回的是Object,为什么它还能处理任何类?
- 梯度下降函数理解
- Android自定义折线图
- 前端学习-入门
- **基于 Apache Mahout 实现高效的协同过滤推荐电影**
- Java环境变量配置
- 1012. 数字分类
- C++单例模式精讲