初级前端的面经

2021-03-13  本文已影响0人  二荣xxx

初级前端的面经

一、函数节流

通俗来说:用户频繁多次点击只触发一次

let cd = false
function fn(){}
Button.onclick=function(){
    if(cd){
        //
    }else{
        fn()
        cd = true
    let timerId=setTimeout(()=>{
            cd = false
        },3000)
    }
}

二、函数防抖

通俗来说:将多次请求合并一起触发

let timerId = null
Button.onclick=function fn(){
    if(timerId){
        window.clearTimeout(timerId)
    }else{
       timerId = setTimeout(()=>{
          fn(){}
            timerId=null
        },5000)
    }
}

三、手写AJAX

复杂版

const request = XMLHttpRequest()
request.open = ('GET','/xxx')
const request.onreadystatechange=()=>{
    if(request.readyState === 4 && request.statue >= 200 && request.state <300){
        console.log('请求成功')
    }else{
        console.log('请求失败')
    }
    request.send()
}

简化版

const request = XMLHttpRequest()
request.open('GET','/XXX')
request.onload =()=>{console.log('请求成功')}
rrequest.send()

四、ES6语法

var a=1
let b=2
console.log(a) //1
console.log(b) //2

将变量声明和打印交换位置

console.log(a) //undefined
console.log(b) //报错
var a=1
let b=2
function fn(){
   return new promise =(resolve,reject)=>{
        成功调用resolve(数据)
        失败调用reject(error)
  }
}
fn().then(success,fail).then(success2,fail2)
let p = promise.all[
    promise.resolve(),
    promise2.resolve()
]
let p = promise.race[
    promise.resolve()
    promise.resolve()
]

五、单位

六、vuex

const moduleA = {
    states : ()=>({ ... }),
    mutations : { ... },
    actions : { ... },
    getters : { ... }
}
const moduleB = {
    states : ()=({ ... }),
    mutations : { ... },
    actions : { ... },
    getter : { ... }
}
const store = new Vuex.store({
    modules:{
      a : moduleA ,
      b : moduleB
  }
})
store.state.a // moduleA的状态
store.state.b // moduleB的状态

八:vue-router

router-link
router-view
$route.params //用来获取导航的变化
router.replace // 替换掉当前的 history 记录
router.push //当用户点击浏览器后退按钮时,则回到之前的 URL

八、HTML

九、uin-app

十、Vue-element组件库

十一、Vue的AJAX--AXIOS

十二、算法

上一篇 下一篇

猜你喜欢

热点阅读