随机生成字母和数组的组合
1 | Math.random().toString(36).substr(2); |
格式化时间
1 | const dateFormatter = (formatter, date) => { |
获取变量的实际类型
1 | const trueTypeOf = (obj) => { |
1. if多条件判断
1 | // 冗余 |
2. if…else…
1 | // 冗余 |
- 多条件判断同一执行方法
1 | if(status === 0 || status === 1 || status === 2 || status === 3) { |
- 多种可能对应不同情况
1 | // status 非数值或数值过大 |
3. Null, Undefined, 空值检查
1 | // 冗余 |
4. 函数条件调用
1 | // 冗余 |
5. switch多条件
1 | // 冗余 |
6. 隐式返回
1 | // 冗余 |
7. 普通数组去重&对象数组去重
1 | const uniqueArr = (arr) => [...new Set(arr)]; |
8. 从数组中取出相对应属性的值
1 | const reducedFilter = (data, keys, fn) =>data.filter(fn) |
9.关于 return cur.push(v*2),cur之谜
let arr=[1,2,3,4]
const b=arr.reduce((cur,v)=> [...cur,v*2],[])
const b1=arr.reduce((cur,v)=> {
//直接 return cur.push(v*2)报错是因为 push返回的不是数组,是push之后的长度
return cur.push(v*2),cur
},[])
const b2=arr.reduce((res, cur)=> {
res.push(cur * 2);
return res;
}, [])
// [2,4,6,8]
return cur.push(v*2),cur
等同于return cur
10.邮箱正则
1 | export const isEmail = (e) => { |
11.是否是微信浏览器
1 | export const isWeiXin = () => { |
12.去除html标签
1 | const removeHtmlTag = (str) => { |
13.动态引入js
1 | export const innerScript = (src) => { |
14.判断对象是不是空对象
1 | let data={} |
15.判断对象中是不是所有值都为空
1 | let data = { name: "1", value: "2", value2: ""} |
16.双!
号操作符将任何变量转换为布尔值
1 | !!0 //false |
17.当满足条件时往对象中添加属性
1 | let isExist = true; |
18.函数执行时间
1 | console.time('testTime') |
19.判断是否滚动到底部
1 | const bottomVisible = () => |
20.去除数组中的空值假值
1 | Array.filter(Boolean); |
21.js拼接get请求参数,加入有值参数去除空参
1 | const formatParams = (params) => { |
22.判断浏览器是否全屏
1 | // 添加onresize事件监听器 |