JavaScript高级程序设计
1.闭包解决方法 》立即执行函数
var btn=document.getElementsByTagName('button'); var con=document.getElementsByTagName('div'); for (var i = 0; i <btn.length; i++) { (function (i) { btn[i].onclick=function () { for (var j = 0; j<btn.length ; j++) { con[j].style.display="none"; } con[i].style.display="block"; } }(i)) }
2.间隔执行和定时执行函数
// setTimeout(function () { 这是等待1000ms再执行 清除 clearTimeout( meter1 )
// alert("a");
// }, 1000);
// var a=1;var speed=2;
// setInterval(function () { 每隔多少毫秒执行 清除 clearInterval( meter1 )
// document.write(parseInt(a+=speed)+"<br>");
// speed=a/2; // }, 100);
3.置顶
document.documentElement.scrollTop=0;
4.删除数组某一项
if (val.length >= 2) { val.splice(0, 1) 删除从下表0开始,长度为1 } arr = ['a','b','c','d'] 删除 ---- item不设置 arr.splice(1,1) //['a','c','d'] 删除起始下标为1,长度为1的一个值,len设置的1,如果为0,则数组不变 arr.splice(1,2) //['a','d'] 删除起始下标为1,长度为2的一个值,len设置的2 替换 ---- item为替换的值 arr.splice(1,1,'ttt') //['a','ttt','c','d'] 替换起始下标为1,长度为1的一个值为‘ttt’,len设置的1 arr.splice(1,2,'ttt') //['a','ttt','d'] 替换起始下标为1,长度为2的两个值为‘ttt’,len设置的1 添加 ---- len设置为0,item为添加的值 arr.splice(1,0,'ttt') //['a','ttt','b','c','d'] 表示在下标为1处添加一项‘ttt’ 看来还是splice最方便啦 2:delete delete删除掉数组中的元素后,会把该下标出的值置为undefined,数组的长度不会变 如:delete arr[1] //['a', ,'c','d'] 中间出现两个逗号,数组长度不变,有一项为undefined
5. 一个数组根据另一个数组大小排序
数组大小排序
var arr2=['zs',5,'lis',3,8,] var arr1=[9,13,10,11,16] var temp = 0; var temp2=""; for (var i = 0; i < arrb.length; i++) { for (var j = 0; j < arrb.length - i; j++) { if (arrb[j] > arrb[j + 1]) { temp = arrb[j + 1]; arrb[j + 1] = arrb[j]; arrb[j] = temp; temp2=an[j+1]; an[j+1]=an[j]; an[j]=temp2; } }}
两个数组按照一个数组排序
function zhuanhuans(an,arrb) { var temp = 0; var temp2=""; for (var i = 0; i < arrb.length; i++) { for (var j = 0; j < arrb.length - i; j++) { if (arrb[j] > arrb[j + 1]) { temp = arrb[j + 1]; arrb[j + 1] = arrb[j]; arrb[j] = temp; temp2=an[j+1]; an[j+1]=an[j]; an[j]=temp2; } }} return an; return arrb; }