华宇笔试题总结
1.css选择器
通用选择器,标签选择器,类选择器,id选择器
2.css样式
内嵌样式,内部样式表,外部样式表
3.split()和join()的区别
String.split() 执行的操作与 Array.join 执行的操作是相反的
split() 方法用于把一个字符串分割成字符串数组
http://www.w3school.com.cn/jsref/jsref_join.asp
http://www.w3school.com.cn/jsref/jsref_split.asp
4.call和apply的区别
call 和 apply 都是为了改变某个函数运行时的 context 即上下文而存在的,换句话说,就是为了改变函数体内部 this 的指向。因为 JavaScript 的函数存在「定义时上下文」和「运行时上下文」以及「上下文是可以改变的」这样的概念。
二者的作用完全一样,只是接受参数的方式不太一样,call 需要把参数按顺序传递进去,而 apply 则是把参数放在数组里。JavaScript 中,某个函数的参数数量是不固定的,因此要说适用条件的话,当你的参数是明确知道数量时,用 call,而不确定的时候,用 apply,然后把参数 push 进数组传递进去。当参数数量不确定时,函数内部也可以通过 arguments 这个数组来便利所有的参数。
- //查找节点
- document.getElementById("id");//通过id查找,返回唯一的节点,如果有多个将会返回第一个,在IE6、7中有个bug,会返回name值相同的元素,所有要做一个兼容
- document.getElementsByClassName("class");//通过class查找,返回节点数组
- document.getElementsByTagName("div");
- //创建节点
- document.createDocumentFragment();//创建内存文档碎片
- document.createElement();//创建元素
- document.createTextNode();//创建文本节点
- //添加节
- var ele = document.getElementById("my_div");
- var oldEle = document.createElement("p");
- var newEle=document.createElement("div");
- ele.appendChild(oldEle);
- //移除
- ele.removeChild(oldEle);
- //替换
- ele.replaceChild(newEle,oldEle);
- ;插入
- ele.insertBefore(oldEle,newEle);//在newEle之前插入 oldEle节点
- //复制节点
- var cEle = oldEle.cloneNode(true);//深度复制,复制节点下面所有的子节点
- cEle = oldEle.cloneNode(false);//只复制当前节点,不复制子节点
- //移动节点
- var cloneEle = oldEle.cloneNode(true);//被移动的节点
- document.removeChild(oldEle);//删除原节点
- document.insertBefore(cloneEle,newEle);//插入到目标节点之前
1. bind/Unbind:匹配页面元素进行相关事件的处理
$("#id").bind('click',function(){alert('tt!')});
$('a').bind({
click:function(){alert('a');},
mouseover:function(){alert('aagain!')}
2. One:为每一个匹配元素的特定事件(像click)绑定一个一次性的事件处理函数。
$('a').one('click',function(){
alert('a');
})
3. live:能处理动态添加的元素,给那些后添加的元素也一样绑定事件
$('a').live('click,function(){
alert('showmessage!');
})
var info="腾讯拍拍网(www.paipai.com)是腾讯旗下知名电子商务网站。";
info +="拍拍网于2005年9月12日上线发布,";
info +="2006年3月13日宣布正式运营,";
info +="是目前国内第二大电子商务平台。";
info=info.split(",");
for(var i=0; i<info.length; i++)
{ alert(info[i]); }
优化:
1、由于字符串相加比较慢,所以可以考虑直接把所有字符写在同一个变量中。
2、仔细考虑这段JS需要实现的功能,会发现,其实完全可以用一个数组来存储,然后遍历数组输出,这样效率会提高很多,因为省去了info=info.split(",");执行所要消耗的时间。
- //查找节点
- document.getElementById("id");//通过id查找,返回唯一的节点,如果有多个将会返回第一个,在IE6、7中有个bug,会返回name值相同的元素,所有要做一个兼容
- document.getElementsByClassName("class");//通过class查找,返回节点数组
- document.getElementsByTagName("div");
- //创建节点
- document.createDocumentFragment();//创建内存文档碎片
- document.createElement();//创建元素
- document.createTextNode();//创建文本节点
- //添加节
- var ele = document.getElementById("my_div");
- var oldEle = document.createElement("p");
- var newEle=document.createElement("div");
- ele.appendChild(oldEle);
- //移除
- ele.removeChild(oldEle);
- //替换
- ele.replaceChild(newEle,oldEle);
- ;插入
- ele.insertBefore(oldEle,newEle);//在newEle之前插入 oldEle节点
- //复制节点
- var cEle = oldEle.cloneNode(true);//深度复制,复制节点下面所有的子节点
- cEle = oldEle.cloneNode(false);//只复制当前节点,不复制子节点
- //移动节点
- var cloneEle = oldEle.cloneNode(true);//被移动的节点
- document.removeChild(oldEle);//删除原节点
- document.insertBefore(cloneEle,newEle);//插入到目标节点之前