笔试题整理

1.如何居中一个浮动元素?

【答案】设置该元素相对定位,left:50%,margin-left:-该元素的宽度(left和margin-left的值可以交换)

2.js产生div标签的三种方法

【答案】①document.createElement("div");

3.项目中使用的mvc框架

我们的项目中没有大量的数据操作,视图操作,也没有api,我们只是完成静态页面的切割,然后加上动态交互效果,就提交给后台开发人员进行开发和添加数据,完了之后我们再看有什么问题,所以其实不太用得到mvc框架,有点小题大作,我觉得像十几个前端一起开发的项目,那需要mvc框架,简化很多dom操作,开发人员可以专心在js的逻辑和业务上面。虽然项目中是没有用到,我自己有稍微了解,像backbone,AngularJS等

4.html和css如何注释

html:<!--注释内容-->

css:/*注释内容*/

5.ie6下为什么无法定义1px左右高度的容器

是因为ie6默认行高造成的

解决办法:overflow:hidden | zoom:0.08 | line-height:1px

相对来说overflow:hidden效果最好

6.flash的wmode属性下有哪几个模式,有什么不同

①window:单独一层,独立于整个页面,在所有其他东西上面,类似漂浮广告

②transparent:透明,flash和他下面的元素通通显示出来

③opaque:不透明,显示当前flash,将他后面的元素遮挡起来

7.清除浮动的几种方法

①.<div style="clear:both"></div>

缺点:增加了无意义的标签

②.父元素添加overflow:hidden;ie6中还需要触发hasLayout,例如zoom:1

缺点:无法显示需要溢出的元素

③.父元素也设置浮动

缺点:跟父元素相邻的元素布局会受到影响

④.给父元素添加clearfix类

.clearfix:after{display:block;height:0;clear:both;visibility:hidden;content:".";}

//触发ie6、7下的hasLayout

.clearfix{*zoom:1;}

8.正则表达式

①中文字符:var re=/[u4e00-u9fa5]/g;

②首尾空格:var re=/(^s+)|(s+$)/g;

③空行:var re=/^$/;

④url:^http://([w-]+.)+[w-]+(/[w-./?%&=]*)?$

⑤email:^(w)+(.w)*@(w)+(.w+)+)$

任意字母、数字、下划线至少出现一次,而点带上任意字母、数字、下划线可能出现也可能没有@任意字母、数字、下划线至少出现一次,点带上域名至少出现一次,如

abc_wang(.dd)@sina.com(.cn)      括号括起来表示可能出现也可能不出现

⑥mac地址:^([0-9a-fA-F]{2})(([0-9a-fA-F]{2}){5})$

9.position取值

①static:默认值,没有定位,居于文档流正常位置

②relative:相对定位,相对于其正常位置进行定位

③absolute:绝对定位,相对于父容器进行定位

④fixed:绝对定位,相对于浏览器窗口进行定位

⑤inherit:从父元素继承position的值

10.语义化标签的理解

语义化标签就是尽量使用有对应结构含义的html标签

好处:

①结构更好,利于搜索引擎的抓取(seo优化)和开发人员的维护(代码结构更清晰,易于维护)

②利于特殊终端的阅读(像手机等设备无法像电脑浏览器那样来渲染网页,因为这些设备对css支持很弱,使用语义化标签,他就不会一个字母一个字母去拼写,而是根据你的标签来判断网页内容)

11.css哪些属性可以被继承

文本相关属性:font-family, font-size, font-style,font-variant, font-weight, font, letter-spacing,
line-height,text-align, text-indent, text-transform,word-spacing
列表相关属性:
list-style-image, list-style-position,list-style-type, list-style
还有一个属性比较重要,color属性。

12.优化css、js代码

css:

①引用外部css文件

②使用reset但并非全局reset

③良好的命名习惯

④css代码缩写,精简代码量

⑤如果父元素的多个子元素要使用相同的样式,把相同样式写在父元素上,让他们继承这个样式,减少代码量

⑥避免使用css表达式

13.以下两个变量a和b,a+b的哪个结果是NaN?      

A、var a=undefind; b=NaN  

B、var a= ‘123’; b=NaN 

C、var a =undefined , b =NaN 

D、var a=NaN , b='undefined' 

【解析】字符串和NaN相加,是做字符串拼接操作,所以b和d都是字符串拼接;而NaN和数字或undefined、null相加,输出NaN

【答案】C(A会输出undefind is not defined)

14.下面哪个javascript变量名称不合法 

A. string   

B. length  

C.非法字符  

D.this  

【解析】变量名称可以是中文,this是关键字

【答案】D

15.以下哪个结果是正确的?(   ) 

var a=100 ,b="100.5a6", c="100.1";

alert(Math.max(a , b ,c)); 

A.100       B. 100.1          C.NaN      D.undefined 

【解析】Math.max()返回最大值,可以是整数、小数、正数、负数、0(字符串数字直接转为数字,如"10")

如果有NaN或者非数字类型的参数,返回NaN

如果没有给出任何参数,返回-Infinity

【答案】C 

16.下面哪个描述不正确(    ) 

A. NaN!=null   B.null!=undefined   C.{}!=false   D.null!=false  

【解析】null和undefined相等但不全等,{}是空对象,true/false是布尔值,两者不等,null同理

【答案】B

17.以下哪个单词不属于javascript保留字:(     )       

A. with    B. instanceof       C. base       D. void 

【答案】C

18.分析代码,得出正确的结果。  var a=10, b=20 , c=30;  ++a;  

a++;

e=++a+(++b)+(c++)+a++;  alert(e);  

弹出提示对话框:

【解析】++a、a++不跟其他发生运算关系时,a都自增1

e=12+21+30+13=77

19.阅读以下代码,请分析出结果: 

 var arr = new Array(1 ,3 ,5);  arr[4]='z'; 

 arr2 = arr.reverse();  arr3 = arr.concat(arr2);  alert(arr3);

【解析】arr[4]='z';这句话,因为arr[3]没有,所以arr[3]的值为""

arr2 = arr.reverse(); 这句话,虽然arr倒转是赋值给arr2了,但是arr本身也被倒转了

 【答案】z,,5,3,1,z,,5,3,1

20.页面跳转的代码

window.location.href=""

原文地址:https://www.cnblogs.com/zhangwenkan/p/4257575.html