JavaScript前端开发时数值运算的小技巧

 更新时间:2020年07月28日 14:50:32   作者:水吉佩奇  
这篇文章主要介绍了JavaScript前端开发时数值运算的小技巧,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

1.格式化金钱值

const ThousandNum = num => num.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
const money = ThousandNum(20190214);
// money => "20,190,214"

2.取整代替正数的Math.floor(),代替负数的Math.ceil()

const num1 = ~~ 1.69;
const num2 = 1.69 | 0;
const num3 = 1.69 >> 0;
// num1 num2 num3 => 1 1 1

3.转数值只对null、""、false、数值字符串有效

const num1 = +null;
const num2 = +"";
const num3 = +false;
const num4 = +"169";
// num1 num2 num3 num4 => 0 0 0 169

4.精确小数

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.判断数据类型

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.克隆数组

const _arr = [0, 1, 2];
const arr = [..._arr];
// arr => [0, 1, 2]

9.合并数组

const arr1 = [0, 1, 2];
const arr2 = [3, 4, 5];
const arr = [...arr1, ...arr2];
// arr => [0, 1, 2, 3, 4, 5];

10.去重数组

const arr = [...new Set([0, 1, 1, null, null])];
// arr => [0, 1, null]

11.截断数组

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 }; // 以下方法任选一种(本人偏爱第一种,简单明了,与克隆数组几乎一样)
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}而是上面结果 下面相同的例子就可以说明

到此这篇关于JavaScript前端开发时数值运算的小技巧的文章就介绍到这了,更多相关JavaScript前端开发时数值运算内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 深入理解JavaScript中的并行处理

    深入理解JavaScript中的并行处理

    这篇文章给大家详细介绍了JavaScript中的并行处理,一直以来,JavaScript 都并没有多线程的能力,而单线程在让开发者方便的同时,也使它一直不能处理计算量复杂的场景,唯一方法就是让服务端去做。下来通过这篇文章我们一起来看看详细介绍。
    2016-09-09
  • 详解JavaScript基于面向对象之继承实例

    详解JavaScript基于面向对象之继承实例

    这篇文章主要介绍了JavaScript基于面向对象之继承实例,需要的朋友可以参考下
    2015-12-12
  • javascript 用局部变量来代替全局变量

    javascript 用局部变量来代替全局变量

    在JavaScript中,我们应该尽可能的用局部变量来代替全局变量,这句话所有人都知道,可是这句话是谁先说的?
    2009-05-05
  • javascript  Error 对象 错误处理

    javascript Error 对象 错误处理

    javascript常见error对象处理,错误代码集合
    2008-05-05
  • easyUI实现(alert)提示框自动关闭的实例代码

    easyUI实现(alert)提示框自动关闭的实例代码

    下面小编就为大家带来一篇easyUI实现(alert)提示框自动关闭的实例代码。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-11-11
  • 原生js+canvas实现下雪效果

    原生js+canvas实现下雪效果

    这篇文章主要为大家详细介绍了原生js+canvas实现下雪效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-08-08
  • extjs简介_动力节点Java学院整理

    extjs简介_动力节点Java学院整理

    这篇文章主要介绍了extjs简介,ExtJS为开发者在开发富客户的B/S应用中提供丰富的UI组件,具有统一的主题,便于快速开发,提高效率
    2017-07-07
  • JS数据结构之队列结构详解

    JS数据结构之队列结构详解

    这篇文章主要为大家详细介绍了JavaScript数据结构与算法中的队列结构,文中通过简单的示例介绍了队列结构的原理与实现,需要的可以参考一下
    2022-11-11
  • 纯js实现瀑布流展现照片(自动适应窗口大小)

    纯js实现瀑布流展现照片(自动适应窗口大小)

    用瀑布流来展现照片再好不过了,我的思路大概是一张一张的图片插入,当这一行的图片保持长宽比例不变并且高度低于250时就完成一个了循环,即这一行插入进去了
    2013-04-04
  • JavaScript是否可实现多线程  深入理解JavaScript定时机制

    JavaScript是否可实现多线程 深入理解JavaScript定时机制

    JavaScript的setTimeout与setInterval是两个很容易欺骗别人感情的方法,因为我们开始常常以为调用了就会按既定的方式执行, 我想不少人都深有同感,
    2009-12-12

最新评论