web前端课程检测2

一、简答题(每题6分,90分)

1、CSS都有哪些选择器?

(评分标准:满分6分,任选6个以上得满分)

属性选择器p{}、类选择器.cls{}、ID选择器 #id{}、通用选择器 *{}

伪类选择器:hover{}、 伪对象选择器:after{}、后代选择器 a b{}

子代选择器a>b{}、并集选择器a,b{}、交集选择器a#b{}

2、什么叫CSS初始化?常用的CSS初始化有哪些,什么区别?

(评分标准:满分6分,根据回答情况酌情给分)

CSS初始化是为了解决各种浏览器的默认样式不同,而选择直接将网页的默认样式清空,保持不同浏览器显示效果的统一。(2分)

常用的额CSS初始化方式有两种:reset.css  normalize.css (2分)

Reset是将所有浏览器的默认样式全部清空,而normalize会保留浏览器中部分统一的且有效的样式(2分)

3、JavaScript的数据类型都有什么?(评分标准:每条1分,满分6分,全写中文或全写英文得3分)

Undefined: 未定义。

Null: 表示空的引用。

Boolean: 布尔类型

Number:  数值类型

String:  字符串类型

Object:  对象类型

4、解释一下JavaScript中的this指针、闭包、作用域?

(评分标准:满分6分,根据回答情况酌情给分)

This指向:JS函数中的this,永远指向函数调用语句所在的对象(谁调用函数,this指向谁)。(2分)

闭包 在函数中,写一个子函数。内层函数可以访问外层函数中的变量。(2分)

作用域: 变量生效的范围称为作用域。JS中只有全局作用域和函数作用域。(2分)

5、使用jQuery操作元素的属性attr()方法和val()有什么区别?

(评分标准:满分6分,每条3分)

Attr():用于读取或者设置元素的属性;

Val(): 用于读取或者设置表单元素的value;

6、JavaScript怎样创建节点、删除节点、替换节点、复制节点?(评分标准:满分6分,每条1.5分)

创建节点 .creatElement();

删除节点 .removeChild();

替换节点 .replaceChild();

复制节点 .cloneNode(true/false);

7、jquery.extend 与 jquery.fn.extend的区别?

(评分标准:满分6分,每条3分)

jquery.extend:用于声明全局插件/方法。声明插件/方法使用$.func();直接调用

query.fn.extend:用于声明局部插件/方法。声明插件/方法使用$(“选择器”).func();选中节点后在调用。

8、描述一下JS中的事件流模型?以及如何阻止事件冒泡?

(评分标准:满分6分,回答合理即可得分)

JS中的事件流模型分为事件冒泡和事件捕获:

事件冒泡:当某DOM元素触发一种事件时,会从当前节点开始,逐级往上触发其祖先节点的同类型事件,直到DOM根节点;(2分)

事件捕获: 当某DOM元素触发一种事件时,会从文档根节点开始,逐级向下触发其祖先节点的同类型事件,直到该节点自身;(2分)

取消事件冒泡:

IE8之前浏览器中,使用 e.cancelBubble = true; (1)

在其他浏览器中,使用e.stopPropagation();(1分)

9、行内元素有哪些?块级元素有哪些? (void)元素有那些?

(评分标准:满分6分,每项2分,任选3个以上得满分)

行级元素<span> <img> <a> <input> <b> <strong> <em> 等

块级元素: <div> <p> <h1>~<h6> <pre> <blockquote> <table> <ul>

空元素 <img /> <meta /> <input /> <link/>

10、JS中如何将数组转化为json字符串,然后再转化回来?

(评分标准:满分6分,每项3分)

数组转为JSON字符串:JSON.stringify(arr);

JSON字符串转为JSON对象:JSON.parse(str);

11、请说出三种减低页面加载时间的方法?

(评分标准:满分6分,任选3条得满分,其他合理答案均可)

① 将JS文件放到文档的最后加载;

② 将多个JS文件、CSS文件合并压缩;

③ 使用雪碧图将页面中的小图片合并处理;

④ 图片使用JS进行延迟加载;

⑤ 其他合理答案均可

12、写出原生JS实现Ajax的关键步骤?

(评分标准:满分6分,酌情给分即可)

var ajax = new XMLHttpRequest();(1分)

ajax.onreadystatechange = function(){(1分)

if(ajax.readyState==4 && ajax.status==200){ (1分)

console.log(ajax.responseText); (1分)

}

}

ajax.open("GET","h51701.json"); (1分)

ajax.send(null); (1分)

13、什么叫同源策略?写出一种解决Ajax跨域请求的方式?(评分标准:满分6分,酌情给分即可)

同源策略 当从一个文件请求另一个文件数据时,JS要求两个文件必须处于同一协议名、同一主机名、同一端口号下,才能请求成功。(3)

跨域请求处理:(3分,任选其一即可得满分)

① 后台PHP中

设置:header("Access-Control-Allow-Origin:*");

② 使用src属性+JSONP跨域。

   <script type="text/javascript" src="请求地址"></ script>

要求后台返回回调函数名,并将返回数据通过参数传入,并在前台写好回调函数

③ JQuery实现JSONP: 

$.ajax({

type:"post",

url:"http://localhost/H5-1705PHP/json.php",

dataType:"jsonp",

success:function(data){

console.log(data);

}

});

14、.CSS中的link和@import有什么区别?常用哪种?

(评分标准:满分6分,任选3条得满分)

① link属于标准的HTML标签,而@import不是标准标签;

② link可以兼容所有低版本浏览器,而@import只在CSS2之后能用;

③ link是将两个文件链接起来,起桥梁作用; 而@import相当于将CSS文件复制到HTML文件中;

④ link会在HTML文件边加载的过程中,边链接CSS文件;

@import会在HTML文件全部加载完以后,再导入CSS文件;

15、rgba()和opacity的透明效果有什么不同?

(评分标准:满分6分,每条3分,回答合理即可得分)

opacity:可以使当前元素的颜色、背景色以及所有子元素都透明

rgba():只能使当前元素的颜色或背景色透明,对子元素没有影响。

 

二、编程题(每题10分,10分)

二、编程题(共10分)

有这样一个URL:http://item.taobao.com/item.htm?a=1&b=2&c=&d=xxx&e,请写一段JS程序提取URL中的各个GET参数(参数名和参数个数不确定),

将其按key-value形式返回到一个json结构中,如{a:’1′, b:’2′, c:”, d:’xxx’, e:undefined}

var arr = [1,2,3,3,4,4,5,5,6,1,9,3,25,4];

var newArr = [];

for(var i=0; i<arr.length; i++){

if(newArr.indexOf(arr[i])<0){

newArr.push(arr[i]);

}

}

 

posted @ 2017-11-13 07:32  胖鱼嘉义  阅读(146)  评论(0编辑  收藏  举报