美文网首页
初级前端的面经

初级前端的面经

作者: 二荣xxx | 来源:发表于2021-03-13 19:36 被阅读0次

初级前端的面经

一、函数节流

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

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语法

  • 问:你所知道的ES6新特性有哪些
    答:我所知道的有let、const、析构赋值,箭头函数、promise

  • 问:let和var的区别
    答:var 存在变量提升,let没有

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
  • 问:const和let的区别
    答:let声明的变量可以改变,const声明的值不能改变

  • 问:说一下你对Promise的理解
    答:promise是解决异步问题避免回调地狱的统一解决方案
    promise对象接受两个参数,一个resolve和一个reject,成功调用resolve,失败调用reject

function fn(){
   return new promise =(resolve,reject)=>{
        成功调用resolve(数据)
        失败调用reject(error)
  }
}
  • 问:.then的使用方法
    答:promise实例有一个then方法,也就是说then方法是定义在promise原型对象上的,then方法可以接受两个函数作为参数,then方法返回的是一个新的promise,可以链式使用the方法
fn().then(success,fail).then(success2,fail2)
  • 问:promise.catch和try catch的区别
    答:promise.catch是在promise失败之后捕获失败原因,js规定在promise里不能使用try catch来捕获异常

  • 问:promise.property.all的用法
    答:promise.all接受一组promise,全部执行成功之后,返回一个新的promise,否则判定为失败

let p = promise.all[
    promise.resolve(),
    promise2.resolve()
]
  • 问:promise.property.race的用法
    答:promise.race接受一组promise,任意一个执行成功,都会返回一个新的promise,否则判定为失败
let p = promise.race[
    promise.resolve()
    promise.resolve()
]

五、单位

  • 问:em和rem的区别
    答:
    em:根据父元素继承大小
    rem:支持IE9及以上,相对于根元素html的字体大小,不容易造成字体大小混乱,较安全

六、vuex

  • 问:对Vuex的理解
    答:VueX是Vue项目的全局状态管理工具,
    它的几个核心概念是:store(存储数据的容器)、state(状态--类似于vue2的data)、mutation(同步改变状态的方法)、getter(store的计算属性)、action(异步改变状态的方法)、module(将store分割成模块,每个模块都有自己的核心属性)
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的状态
  • 问:action和mutation的区别
    Action 类似于 mutation,不同在于:
    Action 提交的是 mutation,而不是直接变更状态。
    Action 可以包含任意异步操作
    mutation 必须同步执行

  • 问:什么Vue修改数据会直接更新到视图上
    答:Vue会对data里声明的属性通过defineProperty方法属性修改为getter和setter类型,Vue通过getter和setter类型监听数据的读写,每当数据变动时,Vue就会重新渲染组件

八:vue-router

  • 问:你是怎么用的Vue-router
    答:Vue-router有三个核心概念,分别是:路由懒加载、导航守卫、history模式
    比较常用的API有:
router-link
router-view
$route.params //用来获取导航的变化
router.replace // 替换掉当前的 history 记录
router.push //当用户点击浏览器后退按钮时,则回到之前的 URL

八、HTML

  • 问:怎么理解HTML语义化
    答:HTML语义化就是用合适的标签来表示相应的内容,比如:我有一个页面,我会用header标签来写抬头,footer标签来写页脚,边部导航用aside标签,文章用artical,段落用section,这样写的好处是增强代码的可读性,和搜索引擎优化

九、uin-app

十、Vue-element组件库

十一、Vue的AJAX--AXIOS

十二、算法

相关文章

  • 初级前端的面经

    初级前端的面经 一、函数节流 通俗来说:用户频繁多次点击只触发一次 二、函数防抖 通俗来说:将多次请求合并一起触发...

  • 面试知识体系整理

    中高级前端大厂面试秘籍 上篇中高级前端大厂面试秘籍 下篇 JS 原生面经从初级到高级

  • 前端面经

    【前端】绿盟科技实习面经:https://www.nowcoder.com/discuss/113284 【前端】...

  • 需要被马住的一些链接

    vue源码实现v-if事件循环可参考的面经,二面挂全部是算法的面经腾讯云实习面经新鲜微信广州面经19年微信前端社招...

  • 前端高频面经

    这是我最近面试过程中比较高频的背景:双非科班应届,vue/react技术栈面试的公司薪资:6-10k算法:快排数据...

  • web前端 面经

    转载的文章: 地址忘记了 这个冬天对很多前端er来说是难过的,经济不景气,各大公司纷纷停止初级人员的招聘。然而灾难...

  • 手撕面经 - 精准打击

    校招2篇,实习1篇,会及时做出调整 字节跳动前端一面面经(感觉凉凉) [字节]一面凉经 腾讯暑期实习前端面经

  • 零基础学到什么程度可以找一份web前端工作?

    能找到一份前端开发工作,首先你起码得是一个合格的初级前端工程师。那么,什么是初级前端工程师?初级前端工程师都会做些...

  • 前端最强面经汇总

    面试秘籍 中高级前端大厂面试秘籍,为你保驾护航金三银四,直通大厂(上) 前端面试 - 收藏集 - 掘金 2万5千字...

  • 前端基础面经整理

    一、js中数组增添、删除的方法var ary = [1,2,3,4]增加的方法:1)push数组末尾添加2)uns...

网友评论

      本文标题:初级前端的面经

      本文链接:https://www.haomeiwen.com/subject/xwlhqltx.html