摘要:前言這兩年前端很火,又是前端的必會技能,在開發中其實有一些有意思的小技巧和方法,本文記錄了一些我工作中遇到的一些技巧和方法。驗證是否為數組先檢驗本地是否有函數,沒有就執行后面的方法檢測。最高效的方法是第一種,所以推薦使用第一種方法清空數組。
前言
這兩年前端很火,JavaScript又是前端的必會技能,在JavaScript開發中其實有一些有意思的小技巧和方法,本文記錄了一些我工作中遇到的一些技巧和方法。
首發地址我的博客 正文 生成指定范圍內的隨機數當我們需要獲取指定范圍(min,max)內的整數的時候,下面的代碼非常適合;這段代碼用的還挺多的。
function setRadomNum(min,max){ return Math.floor(Math.random() * (max - min + 1)) + min; }json轉url參數
當我們進行http請求時,可能需要把json轉化為url參數,這時下面這段代碼就派上用場了。
function json2url(json) { var arr=[]; for(var name in json){ arr.push(name+"="+json[name]); } return arr.join("&"); }驗證是否為數組
function isArray(obj){ return Array.isArray(obj) || Object.prototype.toString.call(obj) === "[object Array]"; }
清空數組先檢驗本地是否有Array.isArray函數,沒有就執行后面的方法檢測。
方式一 通過將長度設置為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=[];
保留指定小數位方式三將一個新的數組的引用賦值給變量,其他引用并不受影響。 這意味著以前數組的內容被引用的話將依舊存在于內存中,這將導致內存泄漏。最高效的方法是第一種,所以推薦使用第一種方法清空數組。
這個需求在項目中也是很常見的,可以toFixed()方法
var num =3.1415926; num = num.toFixed(4); //toFixed()方法可把 Number 四舍五入為指定小數位數的數字,括號里面取值0~20(包括0和20) console.log(num); //3.1416打亂數組的順序
方式一 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; };
使用 === 而不是 ==方式一使用了數組的內置排序方法:sort,而方式二是借助了一個中間量,隨機數組里的兩個值,讓它們交換位置。
== (或者 !=) 操作在需要的情況下自動進行了類型轉換。=== (或 !==)操作不會執行任何轉換。===在比較值和類型時,可以說比==更快。
[10] == 10 // 為 true [10] === 10 // 為 false "10" == 10 // 為 true "10" === 10 // 為 false [] == 0 // 為 true [] === 0 // 為 false "" == false // 為 true 但 true == "a" 為false "" === false // 為 false妙用“&&”和“||”
||和&&運算符妙用,可用于精簡代碼,降低程序的可讀性。
用于賦值
&&:從左往右依次判斷,當當前值為true則繼續,為false則返回此值(是返回未轉換為布爾值時的原值哦)
|| : 從左往右依次判斷,當當前值為false則繼續,為true則返回此值(是返回未轉換為布爾值時的原值哦)
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"
用于條件執行語句
// 普通的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;獲取數組中的最大值或最小值
function maxAndMin(arr){ return { max:Math.max.apply(null,arr.join(",").split(",")), min:Math.min.apply(null,arr.join(",").split(",")) } }
隨機獲取數組里的元素該方法適合一維或者多維數組。
function getRadomFromArr(arr){ return arr[Math.floor(Math.random()*arr.length)]; }從數組里查找指定的值
查到了返回true,沒查到返回false。
function findInArr(arr, value){ for (var i=0; i生成指定長度的隨機數字字母字符串 function getRandomStr(len) { var str = ""; for( ; str.length < len; str += Math.random().toString(36).substr(2)); return str.substr(0, len); }去除字符串的空格雖然在ECMAScript5中已經實現了trim方法,它對低版本瀏覽器并不支持,所以有時候我們需要自己實現。
去除首尾空格
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里面肯定還有很多技巧,以后遇到了慢慢總結。JavaScript的水很深,感覺還有好多要學的。加油!!!
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/80401.html
摘要:生成指定范圍內的隨機數轉參數驗證是否為數組獲取數組中的最大值或最小值該方法適合一維或者多維數組。隨機獲取數組里的元素從數組里查找指定的值查到了返回,沒查到返回。巧用可以寫成去除字符串的空格去除首尾空格去除所有空格 生成指定范圍內的隨機數 function setRadomNum(min,max){ return Math.floor(Math.random(...
摘要:本周于上海閉幕,掘金和知乎上都有對應的實錄和問答,但會議的視頻目前都還沒放出來,有心的同學如果找到了歡迎分享。建議中英文對照閱讀。英文原文前端獨立技術博客推薦推薦一些現在還在堅持原創的博主,有業界大牛,也有小鮮肉,也有國外美女。 CSS 樣式書寫規范最佳實踐 本文的所列是實踐當中得出的一套比較不錯的 CSS 書寫規范,可以結合自身團隊發展出一套適合自己業務的規范。 CSS中的字體與排版...
摘要:本周于上海閉幕,掘金和知乎上都有對應的實錄和問答,但會議的視頻目前都還沒放出來,有心的同學如果找到了歡迎分享。建議中英文對照閱讀。英文原文前端獨立技術博客推薦推薦一些現在還在堅持原創的博主,有業界大牛,也有小鮮肉,也有國外美女。 CSS 樣式書寫規范最佳實踐 本文的所列是實踐當中得出的一套比較不錯的 CSS 書寫規范,可以結合自身團隊發展出一套適合自己業務的規范。 CSS中的字體與排版...
摘要:本周于上海閉幕,掘金和知乎上都有對應的實錄和問答,但會議的視頻目前都還沒放出來,有心的同學如果找到了歡迎分享。建議中英文對照閱讀。英文原文前端獨立技術博客推薦推薦一些現在還在堅持原創的博主,有業界大牛,也有小鮮肉,也有國外美女。 CSS 樣式書寫規范最佳實踐 本文的所列是實踐當中得出的一套比較不錯的 CSS 書寫規范,可以結合自身團隊發展出一套適合自己業務的規范。 CSS中的字體與排版...
摘要:主要分成事件,瀏覽器調試小技巧,其他三部分。一事件先來看一個有趣的問題。介紹一組很有用的事件。我介紹這個的目的并不是簡單的介紹這個事件,而是這里有個小坑。只能通過來進行綁定。二瀏覽器調試小技巧用來代替在文件中打斷點的操作。 這篇文章主要記錄一些我在開發工作中踩過的一些坑或者新學到的一些知識。主要分成‘事件’,‘瀏覽器調試小技巧’,‘其他‘三部分。====================...
閱讀 3952·2021-09-24 10:24
閱讀 1386·2021-09-22 16:01
閱讀 2713·2021-09-06 15:02
閱讀 1014·2019-08-30 13:01
閱讀 1002·2019-08-30 10:52
閱讀 633·2019-08-29 16:36
閱讀 2232·2019-08-29 12:51
閱讀 2333·2019-08-28 18:29