Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[面经]-[滴滴]-[网约车技术中台]-[2020.04.03] #22

Open
zhaofeihao opened this issue Apr 3, 2020 · 0 comments
Open

[面经]-[滴滴]-[网约车技术中台]-[2020.04.03] #22

zhaofeihao opened this issue Apr 3, 2020 · 0 comments
Labels

Comments

@zhaofeihao
Copy link
Owner

zhaofeihao commented Apr 3, 2020

一面

1. 介绍项目

前端数据处理有没有用到 node

2. 说一下研究生期间的课题和项目

3. 为什么离职

4. 说一下 React 和 Vue 的异同,优缺点,适用场景

  • 设计思想

    • react主张函数式编程,所以推崇纯组件,数据不可变,单向数据流,当然需要双向的地方也可以手动实现,比如借助 onChange 和 setState 来实现一个双向的数据流。
    • vue是基于可变数据的,支持双向绑定,它提供了v-model这样的指令来实现文本框的数据流双向绑定。
  • 编写语法

    • react是没有模板的,直接就是一个渲染函数,它中间返回的就是一个虚拟DOM树,React推荐的做法是 JSX + inline style, 也就是把HTML和CSS全都写进JavaScript了,即'all in js'。JSX实际就是一套使用XML语法,用于让我们更简单地去描述树状结构的语法糖。在react中,所有的组件的渲染功能都依靠JSX。你可以在render()中编写类似XML的语法,它最终会被编译成原生JavaScript。
    • Vue采用单文件组件格式,html、css、js分离,数据绑定使用mustache风格,样式直接使用css。其中<style>标签还提供了一个可选的scoped属性,它会为组件内 CSS 指定作用域,用它来控制仅对当前组件有效还是全局生效。
  • 数据绑定

    • Vue采用数据劫持&发布-订阅模式的方式,vue在创建vm的时候,会将数据配置在实例当中,然后通过Object.defineProperty对数据进行操作,为数据动态添加了getter与setter方法,当获取数据的时候会触发对应的getter方法,当设置数据的时候会触发对应的setter方法,从而进一步触发vm的watcher方法,然后数据更改,vm则会进一步触发视图更新操作。
    • react是单向数据流,react中属性是不允许更改的,状态是允许更改的。react中组件不允许通过this.state这种方式直接更改组件的状态。自身设置的状态,可以通过setState来进行更改。setState是异步的,导致获取dom可能拿的还是之前的内容,所以我们需要在setState第二个参数(回调函数)中获取更新后的新的内容。
  • diff算法

    • react 每当应用的状态被改变时,全部组件都会重新渲染,所以react中会需要shouldComponentUpdate这个生命周期函数方法来进行控制。
    • vue会跟踪每一个组件的依赖关系,不需要重新渲染整个组件树。
  • 性能优化

    • vue中的每个组件内部自动实现了shouldComponentUpdate的优化,在vue里面由于依赖追踪系统的存在,当任意数据变动的时,Vue的每一个组件都精确地知道自己是否需要重绘,所以并不需要手动优化。用vue渲染这些组件的时候,数据变了,对应的组件基本上去除了手动优化的必要性。而在react中我们需要手动去优化其性能,但是当数据特别多的时候vue中的watcher也会特别多,从而造成页面卡顿,所以一般数据比较多的大型项目会倾向于使用react。
    • 当props或state发生改变的时候会触发 shouldComponentUpdate生命周期函数,它是用来控制组件是否被重新渲染的.
  • 适用场景

    • Vue 适用应用程序小而快,渲染速度更快,尺寸更小
    • React 大型应用必备(较大的应用程序更看重透明性和可测试性)

前端框架用vue还是react?清晰对比两者差异
React还是Vue:选哪个?

5. Vue 3.0 跟之前版本有什么不同,解决了什么问题

6. 结合「时钟」概念讲解一下浏览器的事件循环机制

7. 说一下从输入 URL 到浏览器解析渲染页面的过程,包括后端都做了什么

8. 如果一次需要渲染数万条数据应该怎么做

9. 实现Promise、Promise.all

10. 两种方法实现斐波那契数列

11. 还有什么想问的

二面

1. 项目中 node 的作用

2. node 如何解决跨域

前端跨域如何解决,cors如何设置

3. 想继续问 express,不太了解

4. sso流程

5. options请求

6. get post 区别

7. HTTP状态码

8. webpack 常用配置

按需加载怎么做
常用插件和loader

9. react 生命周期

10. react 创建组件的方式及区别

11. 状态管理方案,讲讲redux

redux工作流
mapStateToProps
异步数据流

12. fiber 讲解

解决的问题,影响的生命周期

13. hooks解决什么问题

14. []=={} 讲解隐式类型转换

valueOf 和 toString 的区别

15. 写一个对象深拷贝

三面

1. 离职原因

2. 薪资期望

3. 跟领导同事的关系

4. 想来滴滴吗

5. 写个快排

我的代码可读性好吗

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant