javascript是一门很是灵活的语言,实际的开发过程当中咱们也能够灵活的使用它而给咱们的工做带来便利,这篇文章记录了本身平时学习过程当中常常用到的一些小技巧,整理出来做为笔记,也但愿对感兴趣的同窗有所帮助。javascript
当咱们须要获取指定范围(min,max)内的整数的时候,下面的代码很是适合。java
function getRadomNum(min,max){ return Math.floor(Math.random() * (max - min + 1)) + min; }
测试数组
function getRadomFromArr(arr){ return arr[Math.floor(Math.random()*arr.length)]; }
测试app
var arr=[],length=100,i=1; for(;arr.push(i++)<length;){} console.log(arr)
测试dom
var arr=[1,2,3,4,5,6,7,'a','dsfs',8,9,'v']; arr.sort(function(){return Math.random()-0.5});
测试函数
//注意对象必须是如下格式的才能够经过此方式转化为数组 //获取的DOM集合,以及函数的arguments也能够经过此方式转化为数组 var obj={ 0:'qian', 1:'long', 2:'chu', 3:'tian', length:4 } var _slice=[].slice; var objArr=_slice.call(obj);
测试学习
function isArray(obj){测试
return Object.prototype.toString.call(obj) === '[object Array]' ;
}
测试spa
function maxAndMin(arr){ return { max:Math.max.apply(null,arr.join(',').split(',')), min:Math.min.apply(null,arr.join(',').split(',')) } }
该方法适合一维或者多维数组求最大最小值的状况prototype
测试
//方式一 经过将长度设置为0 var arr=[1,2,3,4,5]; arr.length=0; //方式二 经过splice方法 var arr=[1,2,3,4,5]; arr.splice(0,arr.length); //方式三 经过将空数组 [] 赋值给数组(严格意义来讲这只是将ary从新赋值为空数组,以前的数组若是没有引用在指向它将等待垃圾回收。) var arr=[1,2,3,4,5]; arr=[];
var num =4.345678; num = num.toFixed(4); // 4.3457 第四位小数位以四舍五入计算
数组在js中也是对象,有时候咱们可能会经过delete来删除数组中的元素,可是其实仅仅是将数组的元素的值赋值为了undefined。
var arr=[1,2,3,4,5,'谦龙','雏田']; delete arr[5]; console.log(arr,arr[5],arr.length);
测试
能够经过splice来删除数组中的某一项
var arr=[1,2,3,4,5,'谦龙','雏田']; arr.splice(5,1); console.log(arr,arr[5],arr.length);
测试
function getRandomStr(len) { var str = ""; for( ; str.length < len; str += Math.random().toString(36).substr(2)); return str.substr(0, len); }
测试
null == undefined,null == null 返回true,有时候咱们为了排除null 和 undefined能够使用以下的代码
function test(obj){ if(obj!=null){// obj除了undefined 和 null 以外都会走这里 ....这里写代码逻辑 } }
function getMaxAndIndex( arr ){ var obj = {}; arr.forEach(function(item,index){ if(!obj[item]){ obj[item]= {indexs: [index]} }else{ obj[item]['indexs'].push(index); } }); var num=0;//记录出现次数最大值 var str='';//记录出现次数最多的字符 var reArr;//返回最大值的位置数组 for(var attr in obj){ var temp=obj[attr]['indexs']; if(temp.length>num){ num=temp.length; str=attr; reArr=temp; } } return { maxStr:str, indexs:reArr } }
测试结果