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 相关文章推荐
JS启动应用程序的一个简单例子
May 11 Javascript
Javascript 八进制转义字符(8进制)
Apr 08 Javascript
JQueryEasyUI Layout布局框架的使用
Apr 08 Javascript
js对列表中第一个值处理与jsp页面对列表中第一个值处理的区别详解
Nov 05 Javascript
图解JavaScript中的this关键字
May 28 Javascript
学习JavaScript设计模式(策略模式)
Nov 26 Javascript
有趣的bootstrap走动进度条
Dec 01 Javascript
jquery实现弹窗功能(窗口居中显示)
Feb 27 Javascript
vue2.0开发入门笔记之.vue文件的生成和使用
Sep 19 Javascript
JavaScript面向对象继承原理与实现方法分析
Aug 09 Javascript
Vue开发之watch监听数组、对象、变量操作分析
Apr 25 Javascript
解决 viewer.js 动态更新图片导致无法预览的问题
May 14 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
php5.2.0内存管理改进
2007/01/22 PHP
php数据库连接时容易出错的特殊符号问题
2010/09/01 PHP
解决php-fpm.service not found问题的办法
2017/06/06 PHP
PHP静态延迟绑定和普通静态效率的对比
2017/10/20 PHP
js/jquery去掉空格,回车,换行示例代码
2013/11/05 Javascript
js计算两个时间之间天数差的实例代码
2013/11/19 Javascript
js/jQuery简单实现选项卡功能
2014/01/02 Javascript
基于Jquery+Ajax+Json实现分页显示附效果图
2014/07/30 Javascript
js锁屏解屏通过对$.ajax进行封装实现
2014/07/31 Javascript
在JavaScript中操作时间之setYear()方法的使用
2015/06/12 Javascript
$.browser.msie 为空或不是对象问题的多种解决方法
2017/03/19 Javascript
JS jQuery使用正则表达式去空字符的简单实现代码
2017/05/20 jQuery
详解Vue.use自定义自己的全局组件
2017/06/14 Javascript
通过源码分析Vue的双向数据绑定详解
2017/09/24 Javascript
微信小程序实现列表下拉刷新上拉加载
2020/07/29 Javascript
Vue动态加载异步组件的方法
2018/11/21 Javascript
详解Angular模板引用变量及其作用域
2018/11/23 Javascript
nodejs微信开发之授权登录+获取用户信息
2019/03/17 NodeJs
[00:47]DOTA2荣耀之路6:玩不了啦!
2018/05/30 DOTA
Python的Django框架使用入门指引
2015/04/15 Python
详解Python3操作Mongodb简明易懂教程
2017/05/25 Python
python解释器安装教程的方法步骤
2020/07/02 Python
python判断变量是否为列表的方法
2020/09/17 Python
Django怎么在admin后台注册数据库表
2020/11/14 Python
生物制药毕业生自荐信
2013/10/16 职场文书
网络工程系信息安全技术专业大学生求职信
2013/10/22 职场文书
应届生求职信写作技巧
2013/10/24 职场文书
关于爱情的广播稿
2014/01/16 职场文书
竞选宣传委员演讲稿
2014/05/24 职场文书
群众路线教育实践活动自我剖析思想汇报
2014/10/04 职场文书
2015年工程部工作总结
2015/04/30 职场文书
餐馆开业致辞
2015/08/01 职场文书
法院执行局工作总结
2015/08/11 职场文书
2016大学生社会实践单位评语
2015/12/01 职场文书
小程序实现筛子抽奖
2021/05/26 Javascript
TensorFlow中tf.batch_matmul()的用法
2021/06/02 Python