web前端笔试题总结

时间:2021-06-03 13:36:40

em和rem的区别:

  浏览器的默认字体高度是16px,1em=16px;大小可以自己设置调整,并且默认集成父级容器中文本的大小。

  rem是CSS3中新增的属性,默认情况下是文本尺寸的大小,不同的是它集成根节点的大小,如果要改变,只需在根节点处设置,即可全局改变。

js的内置对象:

  String;Math;Array;Date;Event;Global;正则表达式对象;

position四个属性值的区别:

  static:默认情况下是static,即正常的文档流;

  fixed:依据浏览器的窗口进行定位,当滑动页面的时候位置固定不变;

  relative:相对元素本身的位置进行偏移.

  absolute:当父级容器设置了position为relative或absolute,那么元素相对父级容器进行定位,并且会忽略父级容器的padding,从padding的左上角,和border紧挨着进行定位。

用纯CSS3实现div的上下左右居中:

div{
  position: relative;
  top: 50%;
  left: 50%;
  transform: translate(-50%,-50%);
  }

书写高效CSS需要注意的问题:

1:布局遵循从全局到局部,从左到右,从上到下。

2:class,id命名尽量简短且通俗易懂。

3:提取公共样式,提高代码的复用率。

4:开始要CSS样式的初始化。(由于不同浏览器的默认样式有所不同,为了统一显示)

5:大项目要考虑三层架构。

提高网页加载速度的方法:

1:优化网页图片文件。(JPG是全彩色图片,占用的空间比较大;GIF支持动图,尺寸小,但是颜色范围窄;PNG比GIF的颜色范围大)

2:图片使用height和width属性。(这样浏览器在加载图片之前就会预留出位置,待加载完成之后直接显示,否则在加载完成之后还要重新处理一次布局样式)

3:CSS文件压缩瘦身,删除多余样式,空格等,可以使用工具来压缩CSS文件。

4:目录地址后加上斜杠。(减少服务器分析地址的时间)

5:整合CSS,js文件减少HTTP请求次数。可以将不同的样式表合成一个文件,可以使用sprites将多张小图片整合到一张大图片上。

怎样判断一个值是不是NaN:

可以用isNaN()函数:

function ifNaN(value){
if(isNaN(value)){
return true;
}else{
return false;
}
}

返回true则是NaN,否则不是NaN

sum(2,3)=>5

sum(2)(3)=>5

请写出sum函数的具体实现:

function sum(a){
if(arguments.length==2){
return arguments[0]+arguments[1];
}
if(arguments.length==1){
return function (b){
return a+b;
}
}
}

用prototype实现一个简单的继承例子:

function baseClass(){
this.show=function(){
alert("baseClass");
}
}
function extendClass(){} extendClass.prototype=new baseClass();
var instance=new extendClass();
instance.show();

用函数计算出从1到n一个有几个0:

function numberOf0(){
var a=0;
for(var i=1;i<=n;i++){
var str=new String(i);
for(var j=0;j< str.length;j++){
if(str[j]=="0"){
a++;
}
}
}
alert(a);
}