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 } }
測試結果