摘要:前言是一門(mén)非常靈活的語(yǔ)言,實(shí)際的開(kāi)發(fā)過(guò)程中我們也可以靈活的使用它而給我們的工作帶來(lái)便利,這篇文章記錄了自己平時(shí)學(xué)習(xí)過(guò)程中經(jīng)常用到的一些小技巧,整理出來(lái)作為筆記,也希望對(duì)感興趣的同學(xué)有所幫助。
前言
1 獲取指定范圍內(nèi)的隨機(jī)數(shù)javascript是一門(mén)非常靈活的語(yǔ)言,實(shí)際的開(kāi)發(fā)過(guò)程中我們也可以靈活的使用它而給我們的工作帶來(lái)便利,這篇文章記錄了自己平時(shí)學(xué)習(xí)過(guò)程中經(jīng)常用到的一些小技巧,整理出來(lái)作為筆記,也希望對(duì)感興趣的同學(xué)有所幫助。
當(dāng)我們需要獲取指定范圍(min,max)內(nèi)的整數(shù)的時(shí)候,下面的代碼非常適合。
function getRadomNum(min,max){ return Math.floor(Math.random() * (max - min + 1)) + min; }
測(cè)試
function getRadomFromArr(arr){ return arr[Math.floor(Math.random()*arr.length)]; }
測(cè)試
var arr=[],length=100,i=1; for(;arr.push(i++)測(cè)試
4 打亂數(shù)字?jǐn)?shù)組的順序var arr=[1,2,3,4,5,6,7,"a","dsfs",8,9,"v"]; arr.sort(function(){return Math.random()-0.5});測(cè)試
5 對(duì)象轉(zhuǎn)換為數(shù)組//注意對(duì)象必須是以下格式的才可以通過(guò)此方式轉(zhuǎn)化為數(shù)組 //獲取的DOM集合,以及函數(shù)的arguments也可以通過(guò)此方式轉(zhuǎn)化為數(shù)組 var obj={ 0:"qian", 1:"long", 2:"chu", 3:"tian", length:4 } var _slice=[].slice; var objArr=_slice.call(obj);測(cè)試
6 驗(yàn)證是否為數(shù)組function isArray(obj){
return Object.prototype.toString.call(obj) === "[object Array]" ;}
7 獲取數(shù)組中最大或者最小值
測(cè)試function maxAndMin(arr){ return { max:Math.max.apply(null,arr.join(",").split(",")), min:Math.min.apply(null,arr.join(",").split(",")) } }該方法適合一維或者多維數(shù)組求最大最小值的情況
測(cè)試
8 清空數(shù)組//方式一 通過(guò)將長(zhǎng)度設(shè)置為0 var arr=[1,2,3,4,5]; arr.length=0; //方式二 通過(guò)splice方法 var arr=[1,2,3,4,5]; arr.splice(0,arr.length); //方式三 通過(guò)將空數(shù)組 [] 賦值給數(shù)組(嚴(yán)格意義來(lái)說(shuō)這只是將ary重新賦值為空數(shù)組,之前的數(shù)組如果沒(méi)有引用在指向它將等待垃圾回收。) var arr=[1,2,3,4,5]; arr=[];9 保留指定小數(shù)位var num =4.345678; num = num.toFixed(4); // 4.3457 第四位小數(shù)位以四舍五入計(jì)算10 不要直接使用delete來(lái)刪除數(shù)組中的元素數(shù)組在js中也是對(duì)象,有時(shí)候我們可能會(huì)通過(guò)delete來(lái)刪除數(shù)組中的元素,但是其實(shí)僅僅是將數(shù)組的元素的值賦值為了undefined。
var arr=[1,2,3,4,5,"謙龍","雛田"]; delete arr[5]; console.log(arr,arr[5],arr.length);測(cè)試
可以通過(guò)splice來(lái)刪除數(shù)組中的某一項(xiàng)
var arr=[1,2,3,4,5,"謙龍","雛田"]; arr.splice(5,1); console.log(arr,arr[5],arr.length);測(cè)試
11 生成指定長(zhǎng)度的隨機(jī)字母數(shù)字字符串function getRandomStr(len) { var str = ""; for( ; str.length < len; str += Math.random().toString(36).substr(2)); return str.substr(0, len); }測(cè)試
12 null 與 undefinednull == undefined,null == null 返回true,有時(shí)候我們?yōu)榱伺懦齨ull 和 undefined可以使用如下的代碼
function test(obj){ if(obj!=null){// obj除了undefined 和 null 之外都會(huì)走這里 ....這里寫(xiě)代碼邏輯 } }13 找出數(shù)組中出現(xiàn)次數(shù)最的元素,并給出其出現(xiàn)過(guò)的位置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;//記錄出現(xiàn)次數(shù)最大值 var str="";//記錄出現(xiàn)次數(shù)最多的字符 var reArr;//返回最大值的位置數(shù)組 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 } }測(cè)試結(jié)果
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/86178.html
摘要:我打算把一些上使用的高級(jí)技巧寫(xiě)成你不知道的這一系列的博文,希望大家一起學(xué)習(xí)學(xué)習(xí)。然而,這還不是最嚴(yán)重的,因?yàn)榈恼Z(yǔ)法比較寬松和隨意,所以同一功能多種寫(xiě)法,各種奇葩都有??偨Y(jié)前端在調(diào)試代碼的時(shí)候,知道開(kāi)發(fā)工具上的小技巧,可以提高查找問(wèn)題的效率。 Web前端開(kāi)發(fā)過(guò)程中必然會(huì)用到Chrome瀏覽器自帶的開(kāi)發(fā)者工具Chrome DevTools,使用它作為Web前端開(kāi)發(fā)性能調(diào)試的必備工具。就連隔...
摘要:本周于上海閉幕,掘金和知乎上都有對(duì)應(yīng)的實(shí)錄和問(wèn)答,但會(huì)議的視頻目前都還沒(méi)放出來(lái),有心的同學(xué)如果找到了歡迎分享。建議中英文對(duì)照閱讀。英文原文前端獨(dú)立技術(shù)博客推薦推薦一些現(xiàn)在還在堅(jiān)持原創(chuàng)的博主,有業(yè)界大牛,也有小鮮肉,也有國(guó)外美女。 CSS 樣式書(shū)寫(xiě)規(guī)范最佳實(shí)踐 本文的所列是實(shí)踐當(dāng)中得出的一套比較不錯(cuò)的 CSS 書(shū)寫(xiě)規(guī)范,可以結(jié)合自身團(tuán)隊(duì)發(fā)展出一套適合自己業(yè)務(wù)的規(guī)范。 CSS中的字體與排版...
摘要:本周于上海閉幕,掘金和知乎上都有對(duì)應(yīng)的實(shí)錄和問(wèn)答,但會(huì)議的視頻目前都還沒(méi)放出來(lái),有心的同學(xué)如果找到了歡迎分享。建議中英文對(duì)照閱讀。英文原文前端獨(dú)立技術(shù)博客推薦推薦一些現(xiàn)在還在堅(jiān)持原創(chuàng)的博主,有業(yè)界大牛,也有小鮮肉,也有國(guó)外美女。 CSS 樣式書(shū)寫(xiě)規(guī)范最佳實(shí)踐 本文的所列是實(shí)踐當(dāng)中得出的一套比較不錯(cuò)的 CSS 書(shū)寫(xiě)規(guī)范,可以結(jié)合自身團(tuán)隊(duì)發(fā)展出一套適合自己業(yè)務(wù)的規(guī)范。 CSS中的字體與排版...
摘要:本周于上海閉幕,掘金和知乎上都有對(duì)應(yīng)的實(shí)錄和問(wèn)答,但會(huì)議的視頻目前都還沒(méi)放出來(lái),有心的同學(xué)如果找到了歡迎分享。建議中英文對(duì)照閱讀。英文原文前端獨(dú)立技術(shù)博客推薦推薦一些現(xiàn)在還在堅(jiān)持原創(chuàng)的博主,有業(yè)界大牛,也有小鮮肉,也有國(guó)外美女。 CSS 樣式書(shū)寫(xiě)規(guī)范最佳實(shí)踐 本文的所列是實(shí)踐當(dāng)中得出的一套比較不錯(cuò)的 CSS 書(shū)寫(xiě)規(guī)范,可以結(jié)合自身團(tuán)隊(duì)發(fā)展出一套適合自己業(yè)務(wù)的規(guī)范。 CSS中的字體與排版...
摘要:性能測(cè)試工具操作測(cè)試代碼測(cè)試結(jié)果黃條代表每秒可執(zhí)行測(cè)試函數(shù)的次數(shù),當(dāng)然越多越快。務(wù)必減少操作,減少無(wú)意義的路徑的查找。其他測(cè)試測(cè)試代碼這些測(cè)試代碼來(lái)自,官網(wǎng)的例子這是一個(gè)空的非循環(huán)測(cè)試。正則表達(dá)式測(cè)試,數(shù)組的,新建日期,稍微慢了些。 性能測(cè)試工具 JSLitmus dom操作 測(cè)試代碼 ...
閱讀 1868·2023-04-25 14:28
閱讀 1904·2021-11-19 09:40
閱讀 2807·2021-11-17 09:33
閱讀 1393·2021-11-02 14:48
閱讀 1723·2019-08-29 16:36
閱讀 3343·2019-08-29 16:09
閱讀 2927·2019-08-29 14:17
閱讀 2390·2019-08-29 14:07