您的位置:首页 > Web前端 > JavaScript

Web前端开发面试题整理(HTML+CSS+JavaScript)

2015-02-13 16:04 1161 查看
[align=left]1.对WEB标准以及W3C的理解与认识[/align]
[align=left]标签闭合、标签小写、不乱嵌套、提高搜索机器人搜索几率、使用外链css和js脚本、结构行为表现的分离、文件下载与页面速度更快、内容能被更多的用户所访问、内容能被更广泛的设备所访问、更少的代码和组件,容易维护、改版方便,不需要变动页面内容、提供打印版本而不需要复制内容、提高网站易用性;[/align]
[align=left]2.xhtml和html有什么区别[/align]
[align=left]HTML是一种基本的WEB网页设计语言,XHTML是一个基于XML的置标语言[/align]
[align=left]最主要的不同:[/align]
[align=left]XHTML 元素必须被正确地嵌套。[/align]
[align=left]XHTML 元素必须被关闭。[/align]
[align=left]标签名必须用小写字母。[/align]
[align=left]XHTML 文档必须拥有根元素。[/align]
[align=left]3.Doctype?严格模式与混杂模式-如何触发这两种模式,区分它们有何意义?[/align]
[align=left]用于声明文档使用那种规范(html/Xhtml)一般为分为严格和过度两种 基于框架的html文档[/align]
[align=left]加入XMl声明可触发,解析方式更改为IE5.5 拥有IE5.5的bug[/align]
[align=left]4.行内元素有哪些?块级元素有哪些?CSS的盒模型?[/align]
[align=left]块级元素:div p h1 h2 h3 h4 form ul[/align]
[align=left]行内元素: a b br i span input select[/align]
[align=left]Css盒模型:内容,border ,margin,padding[/align]
[align=left]5.CSS引入的方式有哪些?link和@import的区别是?[/align]
[align=left]内联 内嵌 外链 导入 [/align]
[align=left]区别 :同时加载[/align]
[align=left] 前者无兼容性,后者CSS2.1以下浏览器不支持[/align]
[align=left] Link支持使用javascript改变样式,后者不可[/align]
[align=left]6.CSS选择器有哪些?哪些属性可以继承?优先级算法如何计算?内联和important哪个优先级高?[/align]
[align=left]标签选择符 类选择符 id选择符[/align]
[align=left]继承不如指定 Id>class>标签选择[/align]
[align=left]important优先级高[/align]
[align=left]7.前端页面有哪三层构成,分别是什么?作用是什么?[/align]
结构层:由 HTML 或 XHTML 之类的标记语言负责创建,仅负责语义的表达。解决了页面“内容是什么”的问题。

表示层:由CSS负责创建,解决了页面“如何显示内容”的问题。

行为层:由js等脚本负责。解决了页面上“内容应该如何对事件作出反应”的问题。
[align=left]8.css的基本语句构成是?[/align]
[align=left]选择器{属性1:值1;属性2:值2;……}[/align]
[align=left]9.你做的页面在哪些流览器测试过?这些浏览器的内核分别是什么?[/align]
[align=left]Ie(Ie内核) Firefox(Gecko) Google、Safari(webkit)opear(Presto)[/align]
[align=left]10.写出几种IE6BUG的解决方法[/align]
[align=left]1.双边距BUGfloat引起的 使用display[/align]
[align=left]2.3像素问题 使用float引起的 使用dislpay:inline-3px [/align]
[align=left]3.超链接hover 点击后失效 使用正确的书写顺序 linkvisited hover active[/align]
[align=left]4.Ie z-index问题 给父级添加position:relative[/align]
[align=left]5.Png 透明 使用js代码 改[/align]
6.Min-height 最小高度 !Important 解决’

7.select 在ie6下遮盖 使用iframe嵌套
[align=left]8.为什么没有办法定义1px左右的宽度容器(IE6默认的行高造成的,使用over:hidden,zoom:0.08line-height:1px)[/align]
[align=left]11.img标签上title与alt属性的区别是什么?[/align]
[align=left]Alt 当图片不显示是 用文字代表。[/align]
[align=left]Title 为该属性提供信息[/align]
[align=left]12.描述cssreset的作用和用途。[/align]
[align=left]Reset重置浏览器的css默认属性 浏览器的品种不同,样式不同,然后重置,让他们统一[/align]
[align=left]13.解释csssprites,如何使用。[/align]
[align=left]Css 精灵 把一堆小的图片整合到一张大的图片上,减轻服务器对图片的请求数量[/align]
[align=left]14.浏览器标准模式和怪异模式之间的区别是什么?[/align]
[align=left]盒子模型 渲染模式的不同[/align]
[align=left]使用 window.top.document.compatMode 可显示为什么模式[/align]
[align=left]15.你如何对网站的文件和资源进行优化?期待的解决方案包括:[/align]
[align=left]文件合并[/align]
[align=left]文件最小化/文件压缩[/align]
[align=left]使用CDN托管[/align]
[align=left]缓存的使用[/align]
[align=left]16.什么是语义化的HTML?[/align]
[align=left]直观的认识标签 对于搜索引擎的抓取有好处[/align]
[align=left]17.清除浮动的几种方式,各自的优缺点[/align]
[align=left]1.使用空标签清除浮动 clear:both(理论上能清楚任何标签,,,增加无意义的标签)[/align]
[align=left]2.使用overflow:auto(空标签元素清除浮动而不得不增加无意代码的弊端,,使用zoom:1用于兼容IE)[/align]
[align=left]3.是用afert伪元素清除浮动(用于非IE浏览器)[/align]

[align=left]Javascript[/align]
[align=left]1.javascript的typeof返回哪些数据类型[/align]
[align=left]Object number function boolean underfind[/align]
[align=left]2.例举3种强制类型转换和2种隐式类型转换?[/align]
[align=left]强制(parseInt,parseFloat,number)[/align]
[align=left]隐式(== - ===)[/align]
[align=left]3.split()和join() 的区别[/align]
[align=left]前者是切割成数组的形式,后者是将数组转换成字符串[/align]
[align=left]4.数组方法pop()、push() 、unshift()、 shift()的功能[/align]
[align=left]Push()尾部添加 pop()尾部删除[/align]
[align=left]Unshift()头部添加 shift()头部删除[/align]
[align=left]5.事件绑定和普通事件有什么区别[/align]
如果绑定了事件 就可以触发事件 比如click事件 mouseover事件 事件还可以传播

但是如果不绑定事件 就不能执行任何操作 可以说就不具有交互性

[align=left]6.IE和DOM事件流的区别[/align]
[align=left]1.执行顺序不一样、[/align]
[align=left]2.参数不一样[/align]
[align=left]3.事件加不加on[/align]
[align=left]4.this指向问题[/align]
[align=left]7.IE和标准下有哪些兼容性的写法[/align]
[align=left]Var ev = ev || window.event[/align]
[align=left]document.documentElement.clientWidth ||document.body.clientWidth[/align]
[align=left]Var target = ev.srcElement||ev.target[/align]
[align=left]8.ajax请求的时候get和post方式的区别[/align]
[align=left]一个在url后面 一个放在虚拟载体里面[/align]
[align=left]有大小限制[/align]
[align=left]安全问题[/align]
[align=left]应用不同 一个是论坛等只需要请求的,一个是类似修改密码的[/align]
[align=left]9.call和apply的区别[/align]
[align=left]Object.call(this,obj1,obj2,obj3)[/align]
[align=left]Object.apply(this,arguments)[/align]
[align=left]10.ajax请求时,如何解释json数据[/align]
[align=left]使用eval parse 鉴于安全性考虑 使用parse更靠谱[/align]
[align=left]11.b继承a的方法[/align]
function A(name,age){
this.age = age ? age : 30;
this.name = name ? name : '小明'
this.say = function(){
alert(this.name + '今年' + this.age + '岁了!');
}
}
function B(){}
B.prototype = new A();
var C = new B();C.say();

12.写一个获取非行间样式的函数

function getStyle(obj,attr,value)
{
if(!value)
{
if(obj.currentStyle)
{
returnobj.currentStyle(attr)
}
else
{
obj.getComputedStyle(attr,false)
}
}
else
{
obj.style[attr]=value
}
}


[align=left]13.事件委托是什么[/align]
[align=left]让利用事件冒泡的原理,让自己的所触发的事件,让他的父元素代替执行![/align]
[align=left]14.闭包是什么,有什么特性,对页面有什么影响[/align]
[align=left]闭包就是能够读取其他函数内部变量的函数。[/align]
[align=left]/article/9612631.html 此链接可查看(问这个问题的不是一个公司)[/align]
[align=left]15.如何阻止事件冒泡和默认事件[/align]
[align=left]canceBubble return false[/align]
[align=left]16.添加 删除 替换插入到某个接点的方法[/align]
[align=left]obj.appendChidl()[/align]
[align=left]obj.innersetBefore[/align]
[align=left]obj.replaceChild[/align]
[align=left]obj.removeChild[/align]
[align=left]17.解释jsonp的原理,以及为什么不是真正的ajax[/align]
[align=left]动态创建script标签,回调函数[/align]
[align=left]Ajax是页面无刷新请求数据操作[/align]
[align=left]18.javascript的本地对象,内置对象和宿主对象[/align]
[align=left]本地对象为array obj regexp等可以new实例化[/align]
[align=left]内置对象为gload Math 等不可以实例化的[/align]
[align=left]宿主为浏览器自带的document,window 等[/align]
[align=left]19.documentload 和document ready的区别[/align]
[align=left]Document.onload 是在结构和样式加载完才执行js[/align]
[align=left]Document.ready原生种没有这个方法,jquery中有 $().ready(function)[/align]
[align=left]20.”==”和“===”的不同[/align]
[align=left]前者会自动转换类型[/align]
[align=left]后者不会[/align]
[align=left]21.javascript的同源策略[/align]
[align=left]一段脚本只能读取来自于同一来源的窗口和文档的属性,这里的同一来源指的是主机名、协议和端口号的组合[/align]
22.编写一个数组去重的方法

var array=[1,2,2,4,3,5,3,6];
function unique(array){
if(array.length == 0)
return array;
array.sort();
var array2 = [array[0]];
for(var i = 0; i < array.length; i++){
if(array[i]!=array2[array2.length-1)
array2.push();
}
return array2;
}

[align=left]23.排序算法(冒泡排序)[/align]

<script language="javascript">
function BubbleSort(array){
var temp;
for (var i = 1; i < array.length; i++) {
for (var j = array.length - 1; j >= i; j--) {
if (array[j] < array[j - 1]) {//如果当前元素值比前一个元素小,就更换两个元素的位置,否则继续循环
temp = array[j - 1];//把前一个元素值存到临时变量中
array[j - 1] = array[j];//把当前元素值赋给前一个元素,实现连个元素位置的互调,大的在后面,小的在前面
array[j] = temp;//把前一个元素值的存到当前元素的数组单元中,当第二次循环的时候当前元素的值不变,只不过位置靠前了
}
}
}
return array;
}
var array = new Array(43,5,62,34,27,36,36,57,61);
function print(array){
for(var i=0;i<array.length;i++){
document.write(array[i]);
if(i==array.length-1){
break;
}
document.write(",");
}
document.write("<br>")
}
document.write("before sort:");
print(array);
document.write("after sort:");
var str = BubbleSort(array).join(",");
document.write(str);
</script>


24.排序算法(快速排序)

<script language="javascript">
function quick_sort(list, start, end) {
if (start < end) {
var pivotpos = partition(list, start, end);   //找出快排的基数
quick_sort(list, start, pivotpos - 1);        //将左边的快排一次
quick_sort(list, pivotpos + 1, end);          //将右边的快排一次
}
}

//将一个序列调整成以基数为分割的两个区域,一边全都不小于基数,一边全都不大于基数
function partition(list, start, end) {
var pivotpos = start;
var pivot = list[start];
var tmp;
for(var i = start + 1; i <= end; i ++) {
if (list[i] < pivot) {
tmp = list[i];
pivotpos += 1;
list[i] = list[pivotpos];
list[pivotpos] = tmp;
}
}

tmp = list[start];
list[start] = list[pivotpos];
list[pivotpos] = tmp;
return pivotpos;
}

var list = [8,2,4,65,2,4,7,1,9,0,2,34,12];
document.write("Sort Before<br>"+list.join());
quick_sort(list, 0, list.length);
document.write("<br>Sort After<br>"+list.join());
</script>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐