面试题(二)

请在30分钟内完成下列问题:

 

1、请列举CSS选择器并简述各个选择器之间的优先级,优先级相等的情况下如何应用样式。
类选择器、ID选择器、标签选择器、全局选择器、级联选择器、伪选择器、属性选择器
Id>class>标签选择 就近




2、CSS方面使用纯CSS实现未知尺寸的图片(但高宽都小于200px)在200px的正方形容器中水平和垂直居中。
<style type="text/css">
.box{width:200px;height:200px;border:1px solid #000;
display:table-cell;
vertical-align:middle;
text-align:center;
 
*display: block;
*font-size: 175px;/*约为高度的0.873,200*0.873 约为175*/
*font-family:Arial;}
</style>
3、请列举如何让2个并列的div自动等高?
.module{overflow:hidden;}
.a,.b{float:left;width:300px;
padding-bottom:200em;margin-bottom:-200em;background:#ccc;}
.b{background:green; margin-left:10px;}
4、HTML5 有哪些不同类型的存储?
HTML 5 支持本地存储,在之前版本中是通过 Cookie 实现的。HTML5 本地存储速度快而且安全。
有两种不同的对象可用来存储数据:
  localStorage 适用于长期存储数据,浏览器关闭后数据不丢失
  sessionStorage 存储的数据在浏览器关闭后自动删除




5、HTML5 应用缓存和常规的 HTML 浏览器缓存有何差别?
HTML5 的应用缓存最关键的就是支持离线应用,可获取少数或者全部网站内容,包括 HTML、CSS、图像和 JavaScript 脚本并存在本地。该特性加速了网站的性能,可通过如下方式实现:
   
与传统的浏览器缓存比较,该特性并不强制要求用户访问网站。
6、如何规避javascript多人开发函数重名问题?
(1) 可以开发前规定命名规范,根据不同开发人员开发的功能在函数前加前缀
(2) 将每个开发人员的函数封装到类中,调用的时候就调用类的函数,即使函数重名只要类名不重复就ok
7、call 和 apply 的区别是什么?
Object.call(this,obj1,obj2,obj3)
Object.apply(this,arguments)

 

8、请用 [size=10.5pt]HTML5 [size=10.5pt]代码完成下列布局,不用写 [size=10.5pt]CSS [size=10.5pt]。
[size=10.5pt]

 
<!Doctype html>
<html>
<head></head>
[size=10.5pt]<body>
[color=rgb(255, 0, 0)] [size=10.5pt]
  <header>...</header>
[color=rgb(255, 0, 0)] [size=10.5pt]
  <nav>...</nav>
<aside>...</aside>
  <article>
   <section>...</section>
  </article>
  <footer>...</footer>
</body>
</html>

 

9、赋值与判断
var a=10;var b=20;var c=10;
alert(a=b);alert(a==b);alert(a==c);

 

输出的答案:20,true,false

 

10、给出下面表达式输出的结果
var a=1;
function foo() {
    var a =2;
    alert(a);
}
foo();

 

输出的答案:2

 

11、给出下列函数输出的结果
function fn1() {
    alert('1');
}
function fn2() {
    alert('2');
}
var fn3= fn1.call;
fn3.call(fn2);

 

输出的答案:2
12、x,y,s 的值分别是多少?
var x =1;
var y =0;
var z =0;
function add(n){n = n+1;}
y = add(x);
function add(n){n = n+3;}
z = add(x);
s = y+z;

 

x,y,s的值:1,undefined,NaN

 

13、分析下列表达式,给出输出的值
var a = 1;
var b = {
    a: 2,
    b: function() {
        alert(this.a);
    }(),
    f: this.f = function() {
        alert(this.a);
    }
};
function f() {
    alert(3);
}
f();
b.f();
(b.f)();
(0, b.f)();

 

输出的答案:
1,1,2,2,1

 

14、手写一个函数,从['c','g','m','f']数组中取出最小值。



15、假设有一组从0开始的自然数组成的数组;设长度n = 10,找出数组[8,1,4,5,6,3, 7]缺失部分,同样用数组表达出来。

你可能感兴趣的:(面试题(二))