javascript 小技巧积累

javascript 小技巧积累

在这里插入图片描述

1、计算两个日期之间的天数

const dayDidd = (date,date2) => Math.ceil(Math,abs(date - date2) / 86400000)
console.log(dayDiff(new Date(2021-05-10), new Date(2021-11-25)))

2、将文字复制到剪贴板

const copytext = async (text) =>{ await navigator.clipbord.writeText(text) }

3、检查日期是否为周末

const isWeekend = (data) => [0,6].indexOf(date.getDay()) !== -1;
console.log(isWeekend(new Date(2021,4,14)))  //false

4、两个数字之间生成一个随机数

const random = (min,max) => Math.floor(Math.random()) * (max – min +1) + min);

5、滚动到页面顶部

const scrollToTop = () => window.scrollTo(0,0)

6、大写字符串

const capitalize = (str) => str.charAt(0).toUpperCase() + str.slice(1);
console.log(capitalize('hello world'));

7、短路评估速记

// Longhand
if (name !== null || name !== undefined || name !== '') {
  let fullName = name;
}
// Shorthand
const fullName = name || 'buddy';

8、array.reduce()

操作数组、对象数组:
arr.reduce(function(prev,cur,index,arr){ }, init);
其中,
arr 表示原数组;
prev 表示上一次调用回调时的返回值,或者初始值 init;
cur 表示当前正在处理的数组元素;
index 表示当前正在处理的数组元素的索引,若提供 init 值,则索引为0,否则索引为1;
init 表示初始值

求数组项最大值:
var max = arr.reduce(function (prev, cur) {
    return Math.max(prev,cur);
});
数组去重
var newArr = arr.reduce(function (prev, cur) {
    prev.indexOf(cur) === -1 && prev.push(cur);
    return prev;
},[]);
数组扁平化
const newArray = [1, 2, [3, 4, [5, 6],7]]
//ES6语法
const flatten = arr => 
  arr.reduce( (flat, next) => 
    flat.concat(Array.isArray(next) ? flatten(next) : next)
  , [])

9、浮点数转为整数

onsole.log(~~6.95); // 6 
console.log(6.95 >> 0); // 6 
console.log(6.95 << 0); // 6 
console.log(6.95 | 0); // 6 //
 >>>不可对负数取整
console.log(6.95 >>> 0); 

10、避免多条件并列

const enum = ['process', 'wait', 'fail']
if (enum.includes(status)) {
    doSomething()
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值