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

資訊專欄INFORMATION COLUMN

JS開發(fā)中的一些小技巧和方法

loostudy / 2770人閱讀

摘要:前言這兩年前端很火,又是前端的必會技能,在開發(fā)中其實(shí)有一些有意思的小技巧和方法,本文記錄了一些我工作中遇到的一些技巧和方法。驗(yàn)證是否為數(shù)組先檢驗(yàn)本地是否有函數(shù),沒有就執(zhí)行后面的方法檢測。最高效的方法是第一種,所以推薦使用第一種方法清空數(shù)組。

前言

這兩年前端很火,JavaScript又是前端的必會技能,在JavaScript開發(fā)中其實(shí)有一些有意思的小技巧和方法,本文記錄了一些我工作中遇到的一些技巧和方法。

首發(fā)地址我的博客 正文 生成指定范圍內(nèi)的隨機(jī)數(shù)

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

function setRadomNum(min,max){
    return  Math.floor(Math.random() * (max - min + 1)) + min;
}
json轉(zhuǎn)url參數(shù)

當(dāng)我們進(jìn)行http請求時,可能需要把json轉(zhuǎn)化為url參數(shù),這時下面這段代碼就派上用場了。

function json2url(json) {
    var arr=[];
    for(var name in json){
        arr.push(name+"="+json[name]);
    }
    return arr.join("&");
}
驗(yàn)證是否為數(shù)組
function isArray(obj){
    return Array.isArray(obj) || Object.prototype.toString.call(obj) === "[object Array]";
}

先檢驗(yàn)本地是否有Array.isArray函數(shù),沒有就執(zhí)行后面的方法檢測。

清空數(shù)組
方式一 通過將長度設(shè)置為0
var arr=[1,2,3,4,5];
arr.length=0;

方式二 通過splice方法
 var arr=[1,2,3,4,5];
arr.splice(0,arr.length);

//方式三
var arr=[1,2,3,4,5];
arr=[];

方式三將一個新的數(shù)組的引用賦值給變量,其他引用并不受影響。 這意味著以前數(shù)組的內(nèi)容被引用的話將依舊存在于內(nèi)存中,這將導(dǎo)致內(nèi)存泄漏。最高效的方法是第一種,所以推薦使用第一種方法清空數(shù)組。

保留指定小數(shù)位

這個需求在項(xiàng)目中也是很常見的,可以toFixed()方法

var num =3.1415926;
num = num.toFixed(4); //toFixed()方法可把 Number 四舍五入為指定小數(shù)位數(shù)的數(shù)字,括號里面取值0~20(包括0和20)
console.log(num); //3.1416 
打亂數(shù)組的順序
方式一
arr.sort(function(){return Math.random()-0.5});

方式二
function shuffle(arr) {
    var i, 
        j,
        temp;
    for (i = arr.length - 1; i > 0; i--) {
        j = Math.floor(Math.random() * (i + 1));
        temp = arr[i];
        arr[i] = arr[j];
        arr[j] = temp;
    }
    return arr;    
};

方式一使用了數(shù)組的內(nèi)置排序方法:sort,而方式二是借助了一個中間量,隨機(jī)數(shù)組里的兩個值,讓它們交換位置。

使用 === 而不是 ==

== (或者 !=) 操作在需要的情況下自動進(jìn)行了類型轉(zhuǎn)換。=== (或 !==)操作不會執(zhí)行任何轉(zhuǎn)換。===在比較值和類型時,可以說比==更快。

[10] ==  10      // 為 true
[10] === 10      // 為 false

"10" ==  10      // 為 true
"10" === 10      // 為 false

 []  ==  0       // 為 true
 []  === 0       // 為 false

 ""  ==  false   // 為 true 但 true == "a" 為false
 ""  === false   // 為 false 
妙用“&&”和“||”

||&&運(yùn)算符妙用,可用于精簡代碼,降低程序的可讀性。

用于賦值
&&:從左往右依次判斷,當(dāng)當(dāng)前值為true則繼續(xù),為false則返回此值(是返回未轉(zhuǎn)換為布爾值時的原值哦)
|| : 從左往右依次判斷,當(dāng)當(dāng)前值為false則繼續(xù),為true則返回此值(是返回未轉(zhuǎn)換為布爾值時的原值哦)

var attr = true && 4 && "aaa"; //aaa;

var attr = true && 0 && "aaa"; //0

var attr = 100 || 12; //100

var attr = "e" || "hahaha" //"e"

var attr = "" || "hahaha" //"hahaha"

用于條件執(zhí)行語句

// 普通的if語句
if(test){
  isTrue();
}
// 上面的語句可以使用 "&&" 寫為:
( test && isTrue() );


test = false;
if(!test){
  isFalse();
}
// 上面的語句可以使用 "||" 寫為:
( test || isFalse()); 

用于多次判斷后的賦值

var add_level = 0; 
if(add_step == 5){ 
    add_level = 1; 
} 
else if(add_step == 10){ 
    add_level = 2; 
} 
else if(add_step == 12){ 
    add_level = 3; 
} 
else if(add_step == 15){ 
    add_level = 4; 
} 
else { 
    add_level = 0; 
}

//可以寫成
var add_level = (add_step==5 && 1) || (add_step==10 && 2) || (add_step==12 && 3) || (add_step==15 && 4) || 0;  
獲取數(shù)組中的最大值或最小值
function maxAndMin(arr){
    return {
       max:Math.max.apply(null,arr.join(",").split(",")),
       min:Math.min.apply(null,arr.join(",").split(","))
    }
}

該方法適合一維或者多維數(shù)組。

隨機(jī)獲取數(shù)組里的元素
function getRadomFromArr(arr){
    return arr[Math.floor(Math.random()*arr.length)];
}
從數(shù)組里查找指定的值

查到了返回true,沒查到返回false。

function findInArr(arr, value){
    for (var i=0; i
生成指定長度的隨機(jī)數(shù)字字母字符串
function getRandomStr(len) {
    var str = "";
    for( ; str.length < len; str  += Math.random().toString(36).substr(2));
    return  str.substr(0, len);
}
去除字符串的空格

雖然在ECMAScript5中已經(jīng)實(shí)現(xiàn)了trim方法,它對低版本瀏覽器并不支持,所以有時候我們需要自己實(shí)現(xiàn)。

去除首尾空格

function trim(str){
    return str.replace(/(^s*)|(s*$)/g, "");
}

trim("  hello world    "); //"hello world"

去除所有空格

function trimAll(str){
    return str.replace(/s+/g,"");
}

trimAll("   he ll o  wo  r ld    "); //"helloworld"
后記

JavaScript里面肯定還有很多技巧,以后遇到了慢慢總結(jié)。JavaScript的水很深,感覺還有好多要學(xué)的。加油?。。?/p>

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/80401.html

相關(guān)文章

  • JS開發(fā)中的一些技巧方法

    摘要:生成指定范圍內(nèi)的隨機(jī)數(shù)轉(zhuǎn)參數(shù)驗(yàn)證是否為數(shù)組獲取數(shù)組中的最大值或最小值該方法適合一維或者多維數(shù)組。隨機(jī)獲取數(shù)組里的元素從數(shù)組里查找指定的值查到了返回,沒查到返回。巧用可以寫成去除字符串的空格去除首尾空格去除所有空格 生成指定范圍內(nèi)的隨機(jī)數(shù) function setRadomNum(min,max){ return Math.floor(Math.random(...

    KnewOne 評論0 收藏0
  • HTML-CSS-JS

    摘要:本周于上海閉幕,掘金和知乎上都有對應(yīng)的實(shí)錄和問答,但會議的視頻目前都還沒放出來,有心的同學(xué)如果找到了歡迎分享。建議中英文對照閱讀。英文原文前端獨(dú)立技術(shù)博客推薦推薦一些現(xiàn)在還在堅(jiān)持原創(chuàng)的博主,有業(yè)界大牛,也有小鮮肉,也有國外美女。 CSS 樣式書寫規(guī)范最佳實(shí)踐 本文的所列是實(shí)踐當(dāng)中得出的一套比較不錯的 CSS 書寫規(guī)范,可以結(jié)合自身團(tuán)隊(duì)發(fā)展出一套適合自己業(yè)務(wù)的規(guī)范。 CSS中的字體與排版...

    mikasa 評論0 收藏0
  • HTML-CSS-JS

    摘要:本周于上海閉幕,掘金和知乎上都有對應(yīng)的實(shí)錄和問答,但會議的視頻目前都還沒放出來,有心的同學(xué)如果找到了歡迎分享。建議中英文對照閱讀。英文原文前端獨(dú)立技術(shù)博客推薦推薦一些現(xiàn)在還在堅(jiān)持原創(chuàng)的博主,有業(yè)界大牛,也有小鮮肉,也有國外美女。 CSS 樣式書寫規(guī)范最佳實(shí)踐 本文的所列是實(shí)踐當(dāng)中得出的一套比較不錯的 CSS 書寫規(guī)范,可以結(jié)合自身團(tuán)隊(duì)發(fā)展出一套適合自己業(yè)務(wù)的規(guī)范。 CSS中的字體與排版...

    李世贊 評論0 收藏0
  • HTML-CSS-JS

    摘要:本周于上海閉幕,掘金和知乎上都有對應(yīng)的實(shí)錄和問答,但會議的視頻目前都還沒放出來,有心的同學(xué)如果找到了歡迎分享。建議中英文對照閱讀。英文原文前端獨(dú)立技術(shù)博客推薦推薦一些現(xiàn)在還在堅(jiān)持原創(chuàng)的博主,有業(yè)界大牛,也有小鮮肉,也有國外美女。 CSS 樣式書寫規(guī)范最佳實(shí)踐 本文的所列是實(shí)踐當(dāng)中得出的一套比較不錯的 CSS 書寫規(guī)范,可以結(jié)合自身團(tuán)隊(duì)發(fā)展出一套適合自己業(yè)務(wù)的規(guī)范。 CSS中的字體與排版...

    MudOnTire 評論0 收藏0
  • 你可能不知道的前端技巧

    摘要:主要分成事件,瀏覽器調(diào)試小技巧,其他三部分。一事件先來看一個有趣的問題。介紹一組很有用的事件。我介紹這個的目的并不是簡單的介紹這個事件,而是這里有個小坑。只能通過來進(jìn)行綁定。二瀏覽器調(diào)試小技巧用來代替在文件中打斷點(diǎn)的操作。 這篇文章主要記錄一些我在開發(fā)工作中踩過的一些坑或者新學(xué)到的一些知識。主要分成‘事件’,‘瀏覽器調(diào)試小技巧’,‘其他‘三部分。====================...

    elarity 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<