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


Posted in Javascript onJuly 28, 2020

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 }

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

为什么 obj 不是 {a:0,b:1,c:2,d:4,e:5}而是上面结果 下面相同的例子就可以说明

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

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

Javascript 相关文章推荐
一端时间轮换的广告
Jun 26 Javascript
Javascript 拖拽的一些高级的应用(逐行分析代码,让你轻松了拖拽的原理)
Jan 23 Javascript
JS实现按比例缩放图片的方法(附C#版代码)
Dec 08 Javascript
基于BootStrap Metronic开发框架经验小结【五】Bootstrap File Input文件上传插件的用法详解
May 12 Javascript
Bootstrap CSS布局之按钮
Dec 17 Javascript
jQuery使用unlock.js插件实现滑动解锁
Apr 04 jQuery
浅谈vue.js导入css库(elementUi)的方法
Mar 09 Javascript
小程序扫描普通链接二维码跳转小程序指定界面方法
May 07 Javascript
优化Vue项目编译文件大小的方法步骤
May 27 Javascript
jQuery - AJAX load() 实例用法详解
Aug 27 jQuery
小程序如何定位所在城市及发起周边搜索
Feb 11 Javascript
浅谈vue中document.getElementById()拿到的是原值的问题
Jul 26 Javascript
js实现全选和全不选
Jul 28 #Javascript
浅谈vue中$bus的使用和涉及到的问题
Jul 28 #Javascript
js实现全选和全不选功能
Jul 28 #Javascript
JavaScript React如何修改默认端口号方法详解
Jul 28 #Javascript
vue内置组件component--通过is属性动态渲染组件操作
Jul 28 #Javascript
Postman如何实现参数化执行及断言处理
Jul 28 #Javascript
微信小程序实现电子签名功能
Jul 29 #Javascript
You might like
PHP通用检测函数集合
2006/11/25 PHP
fsockopen pfsockopen函数被禁用,SMTP发送邮件不正常的解决方法
2015/09/20 PHP
php生成与读取excel文件
2016/10/14 PHP
php删除数组指定元素实现代码
2017/05/03 PHP
Laravel中服务提供者和门面模式的入门介绍
2017/11/06 PHP
基于jquery中children()与find()的区别介绍
2013/04/26 Javascript
深入理解JavaScript系列(36):设计模式之中介者模式详解
2015/03/04 Javascript
jquery+css3实现网页背景花瓣随机飘落特效
2015/08/17 Javascript
JS获取屏幕高度的简单实现代码
2016/05/24 Javascript
基于BootStrap环境写jQuery tabs插件
2016/07/12 Javascript
jQuery ajax 当async为false时解决同步操作失败的问题
2016/11/18 Javascript
js获取浏览器高度 窗口高度 元素尺寸 偏移属性的方法
2016/11/21 Javascript
深入理解React Native原生模块与JS模块通信的几种方式
2017/07/24 Javascript
浅谈AngularJS中使用$resource(已更新)
2017/09/14 Javascript
微信小程序实现手指触摸画板
2018/07/09 Javascript
详解BootStrap表单验证中重置BootStrap-select验证提示不清除的坑
2019/09/17 Javascript
JQuery常用简单动画操作方法回顾与总结
2019/12/07 jQuery
Angular8 简单表单验证的实现示例
2020/06/03 Javascript
vue组件暴露和.js文件暴露接口操作
2020/08/11 Javascript
一分钟学会JavaScript中的try-catch
2020/12/14 Javascript
使用python实现扫描端口示例
2014/03/29 Python
Python模仿POST提交HTTP数据及使用Cookie值的方法
2014/11/10 Python
python2爬取百度贴吧指定关键字和图片代码实例
2019/08/14 Python
Python Pandas对缺失值的处理方法
2019/09/27 Python
使用python和pygame制作挡板弹球游戏
2019/12/03 Python
通过实例解析python创建进程常用方法
2020/06/19 Python
如何使用Cython对python代码进行加密
2020/07/08 Python
python利用os模块编写文件复制功能——copy()函数用法
2020/07/13 Python
教你使用Sublime text3搭建Python开发环境及常用插件安装另分享Sublime text3最新激活注册码
2020/11/12 Python
python实现在列表中查找某个元素的下标示例
2020/11/16 Python
解决python 执行shell命令无法获取返回值的问题
2020/12/05 Python
Blue Nile中国官网:全球知名的钻石和珠宝网络零售商
2020/03/22 全球购物
大学生军训广播稿
2014/01/24 职场文书
班委竞选演讲稿
2014/04/28 职场文书
2015年毕业生个人自荐书
2015/03/24 职场文书
2016消防宣传标语口号
2015/12/26 职场文书