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对单选框,多选框,文本框等常见操作小结
Jan 08 Javascript
js 获取、清空input type="file"的值示例代码
Feb 19 Javascript
详解angularJs中自定义directive的数据交互
Jan 13 Javascript
干货!教大家如何选择Vue和React
Mar 13 Javascript
移动设备手势事件库Touch.js使用详解
Aug 18 Javascript
jQuery响应滚动条事件功能示例
Oct 14 jQuery
jquery中有哪些api jQuery主要API
Nov 20 jQuery
详解Vue-cli webpack移动端自动化构建rem问题
Apr 07 Javascript
webpack4 SCSS提取和懒加载的示例
Sep 03 Javascript
详解使用React制作一个模态框
Mar 14 Javascript
ES2020 新特性(种草)
Jan 12 Javascript
js实现复制粘贴的两种方法
Dec 04 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解析html的实现代码
2011/08/08 PHP
PHP页面中文乱码分析
2013/10/29 PHP
php中多维数组按指定value排序的实现代码
2014/08/19 PHP
彻底删除thinkphp3.1案例blog标签的方法
2014/12/05 PHP
PHP简单选择排序算法实例
2015/01/26 PHP
php实现的pdo公共类定义与用法示例
2017/07/19 PHP
简单的php购物车代码
2020/06/05 PHP
JavaScript中使用ActiveXObject操作本地文件夹的方法
2014/03/28 Javascript
jQuery实现的多选框多级联动插件
2014/05/02 Javascript
jquery仿搜索自动联想功能代码
2014/05/23 Javascript
jQuery选择器源码解读(六):Sizzle选择器匹配逻辑分析
2015/03/31 Javascript
jquery简单实现带渐显效果的选项卡菜单代码
2015/09/01 Javascript
向JavaScript的数组中添加元素的方法小结
2015/10/24 Javascript
原生js实现autocomplete插件
2016/04/14 Javascript
JS创建对象的写法示例
2016/11/04 Javascript
mpvue中配置vuex并持久化到本地Storage图文教程解析
2018/03/15 Javascript
Vue微信项目按需授权登录策略实践思路详解
2018/05/07 Javascript
javascript动态创建对象的属性详解
2018/11/07 Javascript
VUE实现图片验证码功能
2020/11/18 Javascript
python和pyqt实现360的CLable控件
2014/02/21 Python
Python基于回溯法子集树模板解决m着色问题示例
2017/09/07 Python
Python中的defaultdict与__missing__()使用介绍
2018/02/03 Python
Python使用re模块实现信息筛选的方法
2018/04/29 Python
在pycharm上mongodb配置及可视化设置方法
2018/11/30 Python
Python提取PDF内容的方法(文本、图像、线条等)
2019/09/25 Python
python 实现return返回多个值
2019/11/19 Python
将python字符串转化成长表达式的函数eval实例
2020/05/11 Python
HTML5仿手机微信聊天界面
2016/03/18 HTML / CSS
Electrolux伊莱克斯巴西商店:家用电器、小家电和配件
2018/05/23 全球购物
.NET笔试题(20个问题)
2016/02/02 面试题
小学教师学期末自我评价
2013/09/25 职场文书
中班中秋节活动反思
2014/02/18 职场文书
关于中国梦的演讲稿
2014/04/23 职场文书
2015年小学总务工作总结
2015/07/21 职场文书
java如何实现socket连接方法封装
2021/09/25 Java/Android
python机器学习实现oneR算法(以鸢尾data为例)
2022/03/03 Python