js常用操作

142 阅读1分钟

一、promise async await Promise.all 基本使用

function zhixing1(){
            return new Promise((resolve,reject)=>{
                setTimeout(() => {
                    if (true) {
                        resolve('第一个')
                    } else {
                        reject('请求错误')
                    }
                }, 1000);
            })
        }
        async function zhixing2(){
            const msg3=await zhixing3()
            return await zhixing4(msg3)
        }
        function zhixing3(){
            return new Promise((resolve,reject)=>{
                setTimeout(() => {
                    if (true) {
                        resolve('第三55个')
                    } else {
                        reject('请求错误')
                    }
                }, 3000);
            })
        }
        function zhixing4(msg){
            return new Promise((resolve,reject)=>{
                setTimeout(() => {
                    if (true) {
                        resolve(msg+'试试异步')
                    } else {
                        reject('请求错误')
                    }
                }, 1000);
            })
        }
        async function getPageData() {
            const [msg1, msg2] = await Promise.all([
                zhixing1(), zhixing2()
            ])
            console.log(msg1,msg2)
        }
        getPageData()

二、小驼峰和下划线互转

//小驼峰转下划线
function camelToUnderline(str){
    return str.replace(/([A-Z])/g,'_$1').toLowerCase()
    //return str.replace(/([A-Z])/g,e=>'_'+e.toLowerCase())
}
//下划线转小驼峰
function camelToUnderline(str){
    return str.replace(/_[a-z]/g,e=>e.toUpperCase().replace('_',''))
}

三、数组扁平化 flat

//[1,2,3,[4,5]]->[1,2,3,4,5]
function flat(arr,initVal){
    const strVal=initVal||[]
    return arr.reduce((prevRes, item)=>{
        // console.log(prevRes,item);
        if(Array.isArray(item)){
            return flat(item,prevRes)
        }else{
            return prevRes.concat(item)
        }
    },strVal)
}

一句代码判断数据类型,支持所有

Object.prototype.toString.call(someType).slice(8, -1).toLocaleLowerCase();