首页 > 其他 > 详细

2020年8月面试题6则

时间:2020-08-27 09:42:45      阅读:58      评论:0      收藏:0      [点我收藏+]

一、函数柯里化是什么? 有什么应用场景?

函数柯里化(currying)是一种编程技术,所做到的是:

  • 把原本接收多个参数的函数变为只接受一个参数的函数,并返回一个接收剩余参数的函数。

应用场景:

  1. 封装一些含有环境判断的方法时,函数柯里化可以帮助我们减少判断条件执行的次数。
    例如在封装原生 js 的 addEvent(添加监听事件) 方法时,根据当前浏览器环境使用兼容浏览器版本的 api。
var addEvent = function(ele, type, fn, isCapture) {
    if(window.addEventListener) {

        ele.addEventListener(type, fn, isCapture)

    } else if(window.attachEvent) {

        ele.attachEvent("on" + type, fn)
    }
}

使用函数柯里化,返回一个方法,达到一次判断,多处使用的效果。

var addEvent = (function() {
    if(window.addEventListener) {
        return function(ele, type, fn, isCapture) {
            ele.addEventListener(type, fn, isCapture)
        }
    } else if(window.attachEvent) {
        return function(ele, type, fn) {
             ele.attachEvent("on" + type, fn)
        }
    }
})()
  1. 在封装节流、防抖、bind 此类返回值是函数的方法时会用到函数柯里化
  2. 可用于 vue、react、小程序中的事件传参,在事件绑定时就执行回调函数传参,根据传参值返回真正的事件 callback 函数
<div onCick={handleClick( value )} />
<script>
      handleClick = value => e => {
            console.log( value, e )
      }
</script>

二、webpack 是怎么处理 vue 格式的文件的?

  • webpack 是使用 vue-loader 处理 vue 格式的文件的,
  • 在 15 版本之后,如果要使用 vue-loader ,需要配合自带的插件 VueLoaderPlugin 一起使用

三、vue 如何在用户没登录的时候重定向到登录界面?

  • 前端鉴权可以使用路由守卫,给相应需要登陆权限的路由配置 beforeEnter,判断是否存在 token 之类的登录信息,进行路由的重定向
  • 后端可以判断请求头中携带的 cookie 或 自定义 header 中是否存在 token,解密 token 判断是否给出响应

四、怎么用 useEffect 模拟生命周期函数?

useEffect 有两个参数,第一个是回调函数,第二个是数组类型参数

  • 不写第二个参数时,组件每次渲染后都会触发回调函数,可以模拟类组件的 componentDidUpdate
  • 第二个参数为空时,只有在组件第一次渲染时才会执行回调,可以模拟类组件的 componentDidMount
  • 回调的返回值也是一个回调方法,会在 useEffect 被移除时执行,可以模拟 componentWillUnmount
??useEffect(() => {
????// 相当于 componentDidMount
????window.addEventListener(‘resize‘, onChange, false)
?
????return () => {
??????// 相当于 componentWillUnmount
??????window.removeEventListener(‘resize‘, onChange, false)
????}
??}, [])
?
??useEffect(() => {
????// 相当于 componentDidUpdate
????document.title = count
??})

五、useCallback 是干什么的?为什么会用到 useCallback?

六、能简单说下 redux-saga 的工作流程吗?

2020年8月面试题6则

原文:https://www.cnblogs.com/peaky/p/fe-interview-2020-08.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!