前端开发笔试题
1.对WEB标准以及W3C的理解与认识
标签闭合、标签小写、不乱嵌套、提高搜索机器人搜索几率、使用外链css和js脚本、结构行为表现的分离、文件下载与页面速度更快、内容能被更多的用户所访问、内容能被更广泛的设备所访问、更少的代码和组件,容易维护、改版方便,不需要变动页面内容、提供打印版本而不需要复制内容、提高网站易用性;
2、xhtml和html有什么区别
HTML是一种基本的WEB网页设计语言,XHTML是一个基于XML的置标语言
最主要的不同:
XHTML 元素必须被正确地嵌套。
XHTML 元素必须被关闭。
标签名必须用小写字母。
XHTML 文档必须拥有根元素。
3.Doctype? 严格模式与混杂模式-如何触发这两种模式,区分它们有何意义?
用于声明文档使用那种规范(html/Xhtml)一般为严格过度基于框架的html文档
加入XMl声明可触发,解析方式更改为IE5.5 拥有IE5.5的bug
4、行内元素有哪些?块级元素有哪些?CSS的盒模型?
块级元素:div p h1 h2 h3 h4 form ul
行内元素: a b br i span input select
5、盒子模型概述
Css盒模型: margin、border、padding、content
盒子模型分为了w3c盒子和ie盒子,两者的区别在于w3c盒子的width和height仅指content部分,没有包含padding和border部分,但是ie盒子模型的width和height包含padding和border部分
5.CSS引入的方式有哪些? link和@import的区别是?
内联内嵌外链导入
区别:同时加载
前者无兼容性,后者CSS2.1以下浏览器不支持
Link 支持使用javascript改变样式,后者不可
6.css选择符有哪些?哪些属性可以继承?优先级算法如何计算?内联和important哪个优先级高?
标签选择符、类选择符、 id选择符
优先级顺序: Id>class>标签选择
后者优先级高
7、form中input是类型有哪些?
text:文本框
password:密框码
radio:单选按钮
checkbox:复选框
file:文件选择域
hidden:隐藏域
button:按钮
reset:重置按钮
submit:表单提交按钮
image:图片按钮,类似submit可以为按钮添加图片
8、form中的input的redonly和disable区别
Readonly和Disabled是用在表单中的两个属性,它们都能够做到使用户不能够更改表单域中的内容。但是它们之间有着微小的差别,总结如下:
Readonly只针对input(text / password)和textarea有效,而di sabled对于所有的表单元素都有效,包括select, radio, checkbo x, button等。但是表单元素在使用了disabled后,当我们将表单
以POST或GET的方式提交的话,这个元素的值不会被传递出去,而readonly会将该值传递出去(这种情况出现在我们将某个表单中的t extarea元素设置为disabled或readonly,但是submit button却是可以使用的)
9、你做的页面在哪些流览器测试过?这些浏览器的内核分别是什么? Ie(Ie内核) 火狐(Gecko)谷歌(webkit) opear(Presto)
10、写出几种IE6 BUG的解决方法
1.双边距BUG float引起的使用display:inline
2.3像素问题使用float引起的使用dislpay:inline -3px
3.超链接hover 点击后失效使用正确的书写顺序 link visited hover active
4.Ie z-index问题给父级添加position:relative
5.Png 透明使用js代码改
6.Min-height 最小高度!Important 解决
7.select 在ie6下遮盖使用iframe嵌套
8.为什么没有办法定义1px左右的宽度容器(IE6默认的行高造成的,使用over:hidden,zoom:0.08 line-height:1px)
11、标签上title与alt属性的区别是什么?
Alt 当图片不显示是用文字代表。
Title 为该属性提供信息
12、描述css reset的作用和用途。
Reset重置浏览器的css默认属性浏览器的品种不同,样式不同,然后重置,让他们统一
13、解释css sprites,如何使用。
Css 精灵把一堆小的图片整合到一张大的图片上,减轻服务器对图片的请求次数
14、你如何对网站的文件和资源进行优化?期待的解决方案包括:文件合并、文件最小化/文件压缩、使用CDN托管、缓存的使用
15、什么是语义化的HTML?
直观的认识标签对于搜索引擎的抓取有好处
16.清除浮动的几种方式,各自的优缺点
1.使用空标签清除浮动 clear:both(理论上能清楚任何标签,,,增加无意义的标签)
2.使用overflow:auto(空标签元素清除浮动而不得不增加无意代码的弊端,,使用zoom:1用于兼容IE)
3.是用afert伪元素清除浮动(用于非IE浏览器)
17.简要说说关于Html5和css3的关注?
Html5:HTML5其实是关于图像,位置,存储,速度的优化和改进。一一列举HTML5的新特性,主要有下面一些:
[*]Canvas 图像、图形处理
[*]WebGL 网页3D游戏成为可能
[*]Geolocation API 地理位置定位
[*]Web Storage 本地存储,实现离线应用成为可能
[*]Web Workers 客户端多线程为应用提速
[*]Web Socket 套接字可实现客户端与服务器的持久连接
[*]Video 原生视频播放Audio 原生音频播放
[*]标签的改变:
Css3
圆角:border-radius;5px;
盒子阴影:box-shadow
文字阴影:text-shadow
颜色渐变:
1、线性渐变(Linear Gradients)- 向下/向上/向左/向右/对角方向
#grad {
background: -webkit-linear-gradient(red, blue); /*Safari*/
background: -o-linear-gradient(red, blue); /* Opera*/
background: -moz-linear-gradient(red, blue); /* Firefox */
background: linear-gradient(red, blue); /* 标准的语法 */
}
2、径向渐变(Radial Gradients)- 由它们的中心定义
#grad {
background: -webkit-radial-gradient(red, green, blue); /* Safari*/ background: -o-radial-gradient(red, green, blue); /* Opera */
background: -moz-radial-gradient(red, green, blue); /* Firefox */ background: radial-gradient(red, green, blue); /* 标准的语法 */
}
透明度:rgba(0,0,0,0.5)、opacity:0.5/filter:alpha(opacity=50);
变换:transform
过度:transition
动画:animation
18.如何用CSS分别单独定义IE6、7、8的width属性。
height: 100px; /*所有浏览器通用*/
height: 100px !important; /*ie7和firefox共用*/
color:#090\9; /* ie6、ie7、ie8*/
+color:#f00; /*只针对ie7浏览器*/
*color:#f00; /* ie6、ie7*/
_color:#ff0; /* ie6*/
19、如何上下左右居中一个浮动元素?
设置容器的浮动方式为相对定位,然后确定容器的宽高,比如宽500 高 300 的层,然后设置层的外边距。
div{Width:500px;height:300px;Margin:-150px 0 0
-250px;position:relative;left:50%;top:50%;}
20、IE6不支持png图片格式的解决方法
一、图片替换
使用GIF或PNG8(索引透明)来代替PNG图片
.png{background:url(image.png);
_background:url(image.gif);}
特别说明一下:IE6是支持PNG索引透明的(即要么全透明,要么不透明),但不支持png的 alpha 透明(即半透明)
缺点:GIF图片色彩差了很多,特别是渐变色,有白色虚边。对色彩度要求不高,纯白色可以考虑此方法。
二、CSS滤镜(filter)
使用AlphaImageLoader加载PNG图片
.png{background:url(image.png) repeat-x 0 0;
_background:none;
_filter:progid:DXImageTransform.Microsoft.AlphaImageLoader (src='image.png' , sizingMethod='scale' ); }
缺点:IE6下背景无法平铺,性能差。而且页面使用filter 滤镜以后会出现这样那样的怪问题。页面中次数不是很多的时候该办法还是可行的。
21、你对前端界面工程师这个职位是怎么样理解的?
它其实好比就是一座桥梁,是链接 UI设计和程序开发的中间环节,这个环节直接关系到psd效果图正确高效稳定的还原,同时也为程序开发做好载体。
22、如果让你来制作一个访问量很高的大型网站,你会如何来管理所有CSS文件、JS与图片?
回答:涉及到人手、分工、同步;
1、先期团队必须确定好全局样式(globe.css),编码模式(utf-8)以及编写习惯必须一致
2、标注样式编写人,各模块都及时标注(标注关键样式调用的地方);
3、页面进行标注(例如页面模块开始和结束);
4、CSS跟HTML 分文件夹并行存放,命名都得统一(例如
style.css)
5、JS 分文件夹存放命民以该JS 功能为准英文翻译;
6、图片采用整合的 images.pngpng8 格式文件使用尽量整合在一起使用方便将来的管理
23、前端页面有哪三层构成,分别是什么?作用是什么?
网页分成三个层次,即:结构层、表示层、行为层。
网页的结构层(structurallayer)由HTML 或XHTML 之类的标记语言负责创建。标签,也就是那些出现在尖括号里的单词,对网页内容的语义含义做出了描述,但这些标签不包含任何关于如何显示有关内容的信息。例如,P标签表达了这样一种语义:“这是一个文本段。”网页的表示层(presentationlayer)由CSS 负责创建。CSS 对“如何显示有关内容”的问题做出了回答。
网页的行为层(behaviorlayer)负责回答“内容应该如何对事件做出反应”这一问题。这是Javascript 语言和DOM 主宰的领域。25、执行力问题回答方案
第一点、首先谈谈我对执行力的理解:我所理解的执行力就是要能够把该做的事情落实到行动上,看到具体的效果,而不是说该怎么做,事情是做出来的,而不是嘴上说出来的;
第二点、我觉得单独的去讨论一个人是否有执行力没有太多的意义,我更加看重的是公司应该营造一种这样的文化氛围,个人的执行力才能发挥作用,也就是说公司有没有这样强的执行力文化氛围,靠一个
人的执行力是不够的,要看整个公司的企业文化建设如何。执行力最后的体现在结果上。
1.javascript的typeof返回哪些数据类型
Object number function boolean underfind
2、javascript中的对话框有哪几种
Alert()警告框、prompt()输入对话框、confirm()确认对话框
2、javascript中setTimeout和setinterval的区别是?
setTimeout是计时的功能,到点之后就触发后面的代码,只运行一次,也就是说设定的时间到后就触发运行指定代码,运行完后即结束。如果运行的代码中再次运行同样的setTimeout命令,则可循环运行。
setinterval是循环运行的,即每到设定时间间隔就触发指定代码。这是真正的定时器。
setinterval使用简单,而setTimeout则比较灵活,可以随时退出循环,而且可以设置为按不固定的时间间隔来运行,比如第一次1秒,第二次2秒,第三次3秒……
2、例举3种强制类型转换和2种隐式类型转换?
强制(parseInt,parseFloat,number)
隐式(== – ===)
3、split() join() 的区别
前者是切割成数组的形式,后者是将数组转换成字符串
4、数组方法pop() push() unshift() shift()
Push()尾部添加 pop()尾部删除
Unshift()头部添加 shift()头部删除
6、IE和DOM事件流的区别
1.执行顺序不一样、
2.参数不一样
3.事件加不加on
4.this指向问题
8、ajax请求的时候get 和post方式的区别
简单的来说就是两个方面:有大小限制和安全问题。
Get方式不适合传递数据量较大的数据,同时的话请求的历史信息会保存在浏览器的缓存当中,有一定的风险;而已post方式向服务器发送数据请求,则不存在这两个方面的不足.
9、Ajax实现页面的异步调用和与服务器交互数据
(1)传统的javascript xmlHttpRequest的方式
(2)使用Jquery中的load方法
(3)使用Jquery中的getJson、getScript全局方法
(4)使用最底层的$ajax方法
9、call和apply的区别
Object.call(this,obj1,obj2,obj3)
Object.apply(this,arguments)
10.ajax请求时,如何解释json数据
使用eval parse 鉴于安全性考虑使用parse更靠谱
13.事件委托是什么
让利用事件冒泡的原理,让自己的所触发的事件,让他的父元素代替执行!
https://www.360docs.net/doc/7f4860603.html,/?p=78例子可见此链接
14、闭包是什么,有什么特性,对页面有什么影响
闭包就是能够读取其他函数内部变量的函数。
https://www.360docs.net/doc/7f4860603.html,/gaoshanwudi/article/details/7355794
此链接可查看(问这个问题的不是一个公司)
15.如何阻止事件冒泡和默认事件
canceBubble return false
16、添加删除替换插入到某个接点的方法
obj.appendChidl()
obj.insertBefore()
obj.replaceChild()
obj.removeChild()
17、解释jsonp的原理,以及为什么不是真正的ajax 动态创建script标签,回调函数
Ajax是页面无刷新请求数据操作
18.javascript的本地对象,内置对象和宿主对象
本地对象为array obj regexp等可以new实例化
内置对象为gload Math 等不可以实例化的
宿主为浏览器自带的document,window 等
19.document load 和document ready的区别Document.onload 是在结构和样式加载完才执行js Document.ready原生种没有这个方法,jquery中有
$().ready(function)
23.DOM操作
1、访问指定节点
(1)getElementsByTagName()
(2)getElementsByName()
(3)getElementById()
2、创建新节点
最常用到的几个方法是
createDocumentFragment()--创建文档碎片节点createElement(tagname)--创建标签名为tagname的元素createTextNode(text)--创建包含文本text的文本节点3、属性操作
getAttribute(name) 获取属性值
setAttribute(name,newvalue) 设置属性值removeAttribute(name) 删除属性值
4、遍历DOM
NodeIterator,TreeWalker
六、有使用过css sprite技术吗?请简述其原理及优缺点CSS Sprites原理
CSS Sprites其实就是把网页中一些背景图片整合到一张图片文件中,再利用CSS的“background-image”,“background- repeat”,“background-position”的组合进行背景定位,
background-position可以用数字能精确的定位出背景图片的位置。CSS Sprites优点
利用CSS Sprites能很好地减少了网页的http请求,从而大大的提高了页面的性能,这也是CSS Sprites最大的优点,也是其被广泛传播和应用的主要原因;
CSS Sprites能减少图片的字节,曾经比较过多次3张图片合并成1张图片的字节总是小于这3张图片的字节总和。
CSS Sprites缺点
在图片合并的时候,你要把多张图片有序的合理的合并成一张图片,还要留好足够的空间,防止板块内不会出现不必要的背景;
在高分辨率的屏幕下的自适应页面,你的图片如果不够宽,很容易出现背景断裂;
八、怎么添加,移除,移动,复制创建和查找DOM节点
(1)创建新节点
createDocumentFragment() //创建一个DOM片段createElement() //创建一个具体的元素
createTextNode() //创建一个文本节点
(2)添加、移除、替换、插入
appendChild()
removeChild()
replaceChild()
insertBefore()
(3)查找
getElementsByTagName() //通过标签名称getElementsByName() //通过元素的Name属性的值getElementById() //通过元素Id,唯一性
九、利用正则表达式进行邮箱、url验证
答:
邮箱验证:
Var myreg =
/^([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\_ |\.]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$/;
url
var tomatch= /http:\/\/[A-Za-z0-9\.-]{3,}\.[A-Za-z]{3}/
十、以下代码执行的结果?
var a = 10 ;
sayHi();
function sayHi()
{
a=a+10;
alert(a);
return a;
}
alert(a);
alert(sayHi()+10);
答:20 20 30 40
十一、将此数组根据冒泡排序重新排列:var myArray = new
array(1,3,5,2,7,4);
答:
//new 一个数组
var myArray = new Array(1,3,5,2,7,4);
//冒泡排序
if(myArray.length>0){
for(var i=0; i //在这要注意myArray.length-i-1,意思是第一次从数组第一个值开始,第二次从第二个值开始….. for(var j=0; j str_j){
var tmp = myArray[j];
myArray[j] = myArray[j+1];
myArray[j+1] = tmp;
}
}
}
}
十二、jQuery插件开发的基本格式(选填)
(function ($) {
$.extend($.fn, {
})
})(jQuery)
12、正则表达式
13、前端优化知识
JavaScript和css部分
(1)、GZIP 压缩你的 JS 和 CSS 文件:
(2)把你的 .js 库文件地址替换成 Google CDN的地址:
https://www.360docs.net/doc/7f4860603.html,/ajax/libs/jquery/1.4.4/jquery.m in.js,其意义在于当一个用户访问过使用 google api 的网站之后,再次访问其他调用了该api地址的网站就不需要再次加载该文件了。从而达到提速的目的。
(3)把脚本放到底部
当一个脚本在下载的时候,浏览器干不了其它的事儿(串行了),把脚本放到尽可能底部的地方,一个原因是让页面逐渐渲染,另一个是实现更好的并行下载。对于脚本,脚本以下的内容被阻止逐渐加载了,因为只有当下载完脚本以后才会下载下面的内容,当脚本正在下载的时候,浏览器不会开始下载任何东西。
(4)把样式表放到顶部
这一条其实和用户访问期望有关。CSS 放到最顶部,浏览器能够有针对性的对HTML 页面从顶到下进行解析和渲染。没有人喜欢等待,而浏览器已经考虑到了这一点。
图片处理部分
(1)、使用css sprites合并图片;
一个网站经常使用小图标和小图片进行美化,但是很遗憾这些小图片占用了大量的HTTP请求,因此可以采用sprites的方式把所有的图片合并成一张图片,可以通过相关工具在线合并,也可以在ps中合并。
(2)、优化你网站图片:
大量使用的图片和图标虽然可以给网站带来美轮美奂的效果,图文混编更是一种非常绚丽的博文展现方法。可图片的体积确实不是很