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 相关文章推荐
jquery按回车提交数据的代码示例
Nov 05 Javascript
用js实现in_array的方法
Nov 05 Javascript
JS阻止冒泡事件以及默认事件发生的简单方法
Jan 17 Javascript
jquery获取复选框被选中的值
Apr 10 Javascript
js中匿名函数的创建与调用方法分析
Dec 19 Javascript
JS代码实现根据时间变换页面背景效果
Jun 16 Javascript
JavaScript数据类型转换的注意事项
Jul 31 Javascript
浅谈移动端之js touch事件 手势滑动事件
Nov 07 Javascript
详解微信小程序文件下载--视频和图片
Apr 24 Javascript
深入解析Vue源码实例挂载与编译流程实现思路详解
May 05 Javascript
详解mpvue中使用vant时需要注意的onChange事件的坑
May 16 Javascript
解决Vue的文本编辑器 vue-quill-editor 小图标样式排布错乱问题
Aug 03 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安全的URL字符串base64编码和解码
2014/06/19 PHP
php连接MSsql server的五种方法总结
2018/03/04 PHP
jQuery Jcrop插件实现图片选取功能
2011/11/23 Javascript
jquery 卷帘效果实现代码(不同方向)
2013/02/05 Javascript
JS的Document属性和方法小结
2013/09/17 Javascript
用jquery实现的一个超级简单的下拉菜单
2014/05/18 Javascript
js实现点击向下展开的下拉菜单效果代码
2015/09/01 Javascript
JavaScript的History API使搜索引擎抓取AJAX内容
2015/12/07 Javascript
js实现对ajax请求面向对象的封装
2016/01/08 Javascript
JavaScript获取当前url根目录(路径)
2016/06/17 Javascript
利用bootstrapValidator验证UEditor
2016/09/14 Javascript
jQuery中常用动画效果函数(日常整理)
2016/09/17 Javascript
Jq通过td获取同行其它列td的方法
2016/10/05 Javascript
移动端js图片查看器
2016/11/17 Javascript
微信小程序 向左滑动删除功能的实现
2017/03/10 Javascript
nodejs实现的http、https 请求封装操作示例
2020/02/06 NodeJs
js+canvas实现图片格式webp/png/jpeg在线转换
2020/08/22 Javascript
Vue Element校验validate的实例
2020/09/21 Javascript
[39:32]2014 DOTA2国际邀请赛中国区预选赛 TongFu VS DT 第二场
2014/05/23 DOTA
利用python实现简单的循环购物车功能示例代码
2017/07/05 Python
pandas数值计算与排序方法
2018/04/12 Python
用python3 返回鼠标位置的实现方法(带界面)
2019/07/05 Python
PyQt5通信机制 信号与槽详解
2019/08/07 Python
python中调试或排错的五种方法示例
2019/09/12 Python
python yield和Generator函数用法详解
2020/02/10 Python
win10下python3.8的PIL库安装过程
2020/06/08 Python
python开发前景如何
2020/06/11 Python
使用keras时input_shape的维度表示问题说明
2020/06/29 Python
Python如何合并多个字典或映射
2020/07/24 Python
de Bijenkorf比利时官网:荷兰最知名的百货商店
2017/06/29 全球购物
年会活动策划方案
2014/01/23 职场文书
《锄禾》教学反思
2014/04/08 职场文书
营销学习心得体会
2014/09/12 职场文书
校园游戏活动新闻稿
2014/10/15 职场文书
优秀班主任事迹材料
2014/12/16 职场文书
交通事故被告答辩状
2015/05/22 职场文书