- Math.abs()和Math.max()的用法
if (endDate > startDate) {
return day;
} else {
return -day;
}
reurn endDate > startDate ? day : -day
reurn Math.abs(day)
if (endDate > startDate) {
return day
} else {
return 0;
}
return Math.max(0,day)
- switch的替代方案
const dayOfYear = (date)=>{
return ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', ' November', 'December'][date.getMonth()]
}
let res = dayOfYear(new Date());
console.log(res);
- new Date()的妙用
const numberOfDays = (year) => (new Date(year, 1, 29).getDate() === 29 ? 366 : 365);
console.log(numberOfDays(2024));
- document写法
document.addEventListener('scroll', () => {
const isAtBottom = () => document.documentElement.clientHeight + document.documentElement.scrollTop >= document.documentElement
.scrollHeight;
let res = isAtBottom()
console.log(res);
})
- 二维数组转对象
let arr = [
['BIDUPSID', '3009890E002ED3A29A51AE5FCC94FFAD'],
['PSTM', '1637992115'],
['BD_UPN', '12314753']
]
=>
{
BIDUPSID: '3009890E002ED3A29A51AE5FCC94FFAD',
PSTM: '1637992115',
BD_UPN: '12314753'
}
1、forEach方法
let obj = {}
arr.forEach(([key, val], _) => {
obj[key] = val
})
console.log(obj);
2、reduce方法
let res = arr.reduce((preVal, [key, val]) => (preVal[key] = val) && preVal, {})
console.log(res);
3、flat方法
let obj = {}
arr = arr.flat()
for (let i = 0; i < arr.length; i++) {
if (i % 2 == 0) {
let key = arr[i]
let val = arr[i + 1]
obj[key] = val
}
}
console.log(obj);