JavaScript前端開發(fā)時數(shù)值運算的小技巧
1.格式化金錢值
const ThousandNum = num => num.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ","); const money = ThousandNum(20190214); // money => "20,190,214"
2.取整代替正數(shù)的Math.floor(),代替負數(shù)的Math.ceil()
const num1 = ~~ 1.69; const num2 = 1.69 | 0; const num3 = 1.69 >> 0; // num1 num2 num3 => 1 1 1
3.轉(zhuǎn)數(shù)值只對null、""、false、數(shù)值字符串有效
const num1 = +null; const num2 = +""; const num3 = +false; const num4 = +"169"; // num1 num2 num3 num4 => 0 0 0 169
4.精確小數(shù)
const RoundNum = (num, decimal) => Math.round(num * 10 ** decimal) / 10 ** decimal; const num = RoundNum(1.69, 1); // num => 1.7
5.取最小最大值
const arr = [0, 1, 2]; const min = Math.min(...arr); const max = Math.max(...arr); // min max => 0 2
6.是否為空對象
const obj = {}; const flag = DataType(obj, "object") && !Object.keys(obj).length; // flag => true
7.判斷數(shù)據(jù)類型
function DataType(tgt, type) { const dataType = Object.prototype.toString.call(tgt).replace(/\[object (\w+)\]/, "$1").toLowerCase(); return type ? dataType === type : dataType; } DataType("liner"); // "string" DataType(2020630); // "number" DataType(true); // "boolean" DataType([], "array"); // true DataType({}, "array"); // false
8.克隆數(shù)組
const _arr = [0, 1, 2]; const arr = [..._arr]; // arr => [0, 1, 2]
9.合并數(shù)組
const arr1 = [0, 1, 2]; const arr2 = [3, 4, 5]; const arr = [...arr1, ...arr2]; // arr => [0, 1, 2, 3, 4, 5];
10.去重數(shù)組
const arr = [...new Set([0, 1, 1, null, null])]; // arr => [0, 1, null]
11.截斷數(shù)組
const arr = [...new Set([0, 1, 1, null, null])]; // arr => [0, 1, null]
12.交換賦值
let a = 0; let b = 1; [a, b] = [b, a]; // a b => 1 0
13.克隆對象
const _obj = { a: 0, b: 1, c: 2 }; // 以下方法任選一種(本人偏愛第一種,簡單明了,與克隆數(shù)組幾乎一樣) const obj = { ..._obj }; const obj = JSON.parse(JSON.stringify(_obj)); // obj => { a: 0, b: 1, c: 2 }
14.合并對象
const obj1 = { a: 0, b: 1, c: 2 }; const obj2 = { c: 3, d: 4, e: 5 }; const obj = { ...obj1, ...obj2 }; // obj => { a: 0, b: 1, c: 3, d: 4, e: 5 }
為什么 obj 不是 {a:0,b:1,c:2,d:4,e:5}而是上面結(jié)果 下面相同的例子就可以說明
到此這篇關(guān)于JavaScript前端開發(fā)時數(shù)值運算的小技巧的文章就介紹到這了,更多相關(guān)JavaScript前端開發(fā)時數(shù)值運算內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
layer關(guān)閉彈出窗口觸發(fā)表單提交問題的處理方法
今天小編就為大家分享一篇layer關(guān)閉彈出窗口觸發(fā)表單提交問題的處理方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-09-09淺談JS for循環(huán)中使用break和continue的區(qū)別
這篇文章主要介紹了淺談for循環(huán)中使用break和continue的區(qū)別,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-07-07微信小程序如何實現(xiàn)radio單選框單擊打勾和取消
這篇文章主要介紹了微信小程序如何實現(xiàn)radio單選框單擊打勾和取消,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-01-01JS實現(xiàn)網(wǎng)頁右側(cè)帶動畫效果的伸縮窗口代碼
這篇文章主要介紹了JS實現(xiàn)網(wǎng)頁右側(cè)帶動畫效果的伸縮窗口代碼,通過JavaScript基于時間函數(shù)實現(xiàn)頁面元素樣式漸變效果,具有一定參考借鑒價值,需要的朋友可以參考下2015-10-10