成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

幾個(gè)js開(kāi)發(fā)過(guò)程中的小技巧

golden_hamster / 3175人閱讀

摘要:前言是一門(mén)非常靈活的語(yǔ)言,實(shí)際的開(kāi)發(fā)過(guò)程中我們也可以靈活的使用它而給我們的工作帶來(lái)便利,這篇文章記錄了自己平時(shí)學(xué)習(xí)過(guò)程中經(jīng)常用到的一些小技巧,整理出來(lái)作為筆記,也希望對(duì)感興趣的同學(xué)有所幫助。

前言

javascript是一門(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ù)

當(dāng)我們需要獲取指定范圍(min,max)內(nèi)的整數(shù)的時(shí)候,下面的代碼非常適合。

function getRadomNum(min,max){
    return  Math.floor(Math.random() * (max - min + 1)) + min;
}

測(cè)試

2 隨機(jī)獲取數(shù)組中的元素
function getRadomFromArr(arr){
    return arr[Math.floor(Math.random()*arr.length)];
}
    

測(cè)試

3 生成從0到指定值的數(shù)字?jǐn)?shù)組
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]" ;

}
測(cè)試

7 獲取數(shù)組中最大或者最小值
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 與 undefined

null == 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

相關(guān)文章

  • 你不知道的Chrome DevTools(2):那些debug的技巧

    摘要:我打算把一些上使用的高級(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)試的必備工具。就連隔...

    warnerwu 評(píng)論0 收藏0
  • HTML-CSS-JS

    摘要:本周于上海閉幕,掘金和知乎上都有對(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中的字體與排版...

    mikasa 評(píng)論0 收藏0
  • HTML-CSS-JS

    摘要:本周于上海閉幕,掘金和知乎上都有對(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中的字體與排版...

    李世贊 評(píng)論0 收藏0
  • HTML-CSS-JS

    摘要:本周于上海閉幕,掘金和知乎上都有對(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中的字體與排版...

    MudOnTire 評(píng)論0 收藏0
  • 用測(cè)試工具JSLitmus來(lái)告訴你幾個(gè)提升JavaScript性能的小技巧

    摘要:性能測(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è)試代碼 ...

    羅志環(huán) 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<