document).getElementsByClassName(searchClass),result=[];for(vari=0;node=nodes[i++];){if(tag!=="*"node.tagName===tag.toUpperCase()){result.push(node)}}returnresult}else{node=node
document;tag=tag
"*";varclasses=searchClass.split(""),elements=(tag==="*"node.all)?node.all:node.getElementsByTagName(tag),patterns=[],current,match;vari=classes.length;while(--i=0){patterns.push(newRegExp("(^
\\s)"+classes[i]+"(\\s
$)"));}varj=elements.length;while(--j=0){current=elements[j];match=false;for(vark=0,kl=patterns.length;kkl;k++){match=patterns[k].test(current.className);if(!match)break;}if(match)result.push(current);}returnresult;}}Function.Prototype.bindFunction.prototype.bind=function(oThis){if(typeofthis!=="function"){thrownewTypeError("bindfunctionerror");}varaArgs=Array.prototype.slice.call(arguments,1),fToBind=this,fBound=function(){returnfToBind.apply(oThis
window,aArgs.concat(Array.prototype.slice.call(arguments)));};returnfBound;};7能够设置文本加粗的样式属性是什么字体加粗(font-weight)
功能:用于设置字体笔划的粗细。
属性值:正常度-normal
相对度-bold,bolder,light,lighter
渐变度-,,,(相当于normal),,,(相当于bold、lighter、bolder、以及数值-。
语法为:h1{font-weight:属性值}8编写一个方法去掉一个数组的重复元素1.遍历数组法最简单的去重方法,实现思路:新建一新数组,遍历传入数组,值不在新数组就加入该新数组中;注意点:判断值是否在数组的方法“indexOf”是ECMAScript5方法,IE8以下不支持,需多写一些兼容低版本浏览器代码,源码如下://最简单数组去重法functionunique1(array){varn=[];//一个新的临时数组//遍历当前数组for(vari=0;iarray.length;i++){//如果当前数组的第i已经保存进了临时数组,那么跳过,//否则把当前项push到临时数组里面if(n.indexOf(array[i])==-1)n.push(array[i]);}returnn;}//判断浏览器是否支持indexOf,indexOf为ecmaScript5新方法IE8以下(包括IE8,IE8只支持部分ecma5)不支持if(!Array.prototype.indexOf){//新增indexOf方法Array.prototype.indexOf=function(item){varresult=-1,a_item=null;if(this.length==0){returnresult;}for(vari=0,len=this.length;ilen;i++){a_item=this[i];if(a_item===item){result=i;break;}}returnresult;}}2.对象键值对法该方法执行的速度比其他任何方法都快,就是占用的内存大一些;实现思路:新建一js对象以及新数组,遍历传入数组时,判断值是否为js对象的键,不是的话给对象新增该键并放入新数组。注意点:判断是否为js对象键时,会自动对传入的键执行“toString()”,不同的键可能会被误认为一样;例如:a[1]、a["1"]。解决上述问题还是得调用“indexOf”。//速度最快,占空间最多(空间换时间)functionunique2(array){varn={},r=[],len=array.length,val,type;for(vari=0;iarray.length;i++){val=array[i];type=typeofval;if(!n[val]){n[val]=[type];r.push(val);}elseif(n[val].indexOf(type)0){n[val].push(type);r.push(val);}}returnr;}3.数组下标判断法还是得调用“indexOf”性能跟方法1差不多,实现思路:如果当前数组的第i项在当前数组中第一次出现的位置不是i,那么表示第i项是重复的,忽略掉。否则存入结果数组。functionunique3(array){varn=[array[0]];//结果数组//从第二项开始遍历for(vari=1;iarray.length;i++){//如果当前数组的第i项在当前数组中第一次出现的位置不是i,//那么表示第i项是重复的,忽略掉。否则存入结果数组if(array.indexOf(array[i])==i)n.push(array[i]);}returnn;}4.排序后相邻去除法虽然原生数组的”sort”方法排序结果不怎么靠谱,但在不注重顺序的去重里该缺点毫无影响。实现思路:给传入数组排序,排序后相同值相邻,然后遍历时新数组只加入不与前一值重复的值。//将相同的值相邻,然后遍历去除重复值functionunique4(array){array.sort();varre=[array[0]];for(vari=1;iarray.length;i++){if(array[i]!==re[re.length-1]){re.push(array[i]);}}returnre;}5.优化遍历数组法实现思路:获取没重复的最右一值放入新数组。(检测到有重复值时终止当前循环同时进入顶层循环的下一轮判断)//思路:获取没重复的最右一值放入新数组functionunique5(array){varr=[];for(vari=0,l=array.length;il;i++){for(varj=i+1;jl;j++)if(array[i]===array[j])j=++i;r.push(array[i]);}returnr;}9编写一个布局,页面宽度自适应,最小宽度px,左边定宽35%,右边定宽65%divclass="container"divclass="left"/divdivclass="right"/div/divstyle.container{height:px;_width:px;min-width:px;}.left{width:35%;height:%;background:#ff0;float:left;}.right{overflow:hidden;width:65%;height:%;background:#0f0;}/style10谈谈对html5的了解1.良好的移动性,以移动设备为主。2.响应式设计,以适应自动变化的屏幕尺寸3.支持离线缓存技术,webStorage本地缓存4.新增canvas,video,audio等新标签元素。新特殊内容元素:article,footer,header,nav,section等,新的表单控件:calendar,date,time,email,url,search。5.地理定位...6.新增webSocket/webWork技术12、Js面向对象的几种方式1.对象的字面量varobj={}2.创建实例对象varobj=newObject();3.构造函数模式functionfn(){},newfn();4.工厂模式:用一个函数,通过传递参数返回对象。functionfn(params){varobj=newObject();obj.params=params;returnobj;},fn(params);5.原型模式:functionclock(hour){}fn.prototype.hour=0;newclock();首先,每个函数都有一个prototype(原型)属性,这个指针指向的就是clock.prototype对象。而这个原型对象在默认的时候有一个属性constructor,指向clock,这个属性可读可写。而当我们在实例化一个对象的时候,实例newClock除了具有构造函数定义的属性和方法外(注意,只是构造函数中的),还有一个指向构造函数的原型的指针,ECMAScript管他叫[[prototype]],这样实例化对象的时候,原型对象的方法并没有在某个具体的实例中,因为原型没有被实例。11在css中哪个属性会影响dom读取文档流的顺序1.direction,writing-mode12前端页面有哪三层构成,分别是什么,作用是什么Css:层叠样式表,表现,由css负责创建。css对“如何显示有关内容”的问题做出了回答。Html:超文本标记语言,结构,由HTML或xhtml之类的标记语言负责创建。标签,也就是那些出现在尖括号里的单词,对网页内容的语义含义做出了描述,但这些标签不包含任何关于如何显示有关内容的信息。例如,P标签表达了这样一种语义:“这是一个文本段。”Js:客户端脚本语言,行为,内容应该如何对事件做出反应13Css的基本语句构成是?语法:(自定义的样式名称){样式内容}14如何对网站的文件和资源进行优化1.文件合并(目的是减少北京治疗白癜风那家医院好小孩白癜风好不好治