故事开篇:
看到一则帖子,讲一个学历只是普通的大专毕业的程序员,做前端5年左右的时间了,中间干过3家公司,都是属于中型互联网企业和创业型的公司,规模不算大。很苦恼进不了大厂,一直在中小公司里打滚天天切图。
有一段时间他几乎天天在面试,从普通的一些小公司,到上市公司,到一线大厂(阿里,腾讯,字节)。然而得到最多的反馈其实就是2种,学历不够或者陪跑。
应该会有不少其他想冲击大厂的同学会得到另外两种反馈,技术深度不够,或者简历上缺乏拿得出手的项目。导致最后没有得到面试机会或者面试通过不了。
在这种前提下,你就很容易形成一种死循环,一直在中小公司徘徊,大部分的中小公司都是以业务优先,对于技术的建设相对来说比较缺乏,所以新的技术得不到实践机会,每天忙于各种业务需求,身边的氛围不好等,最终影响你能力的提升。
基本知识
1. 区分Real DOM和Virtual DOM
Real DOM | Virtual DOM |
---|---|
更新缓慢。 | 更新更快。 |
可以直接更新 HTML。 | 无法直接更新 HTML。 |
如果元素更新,则创建新DOM。 | 如果元素更新,则更新 JSX 。 |
DOM操作代价很高。 | DOM 操作非常简单。 |
消耗的内存较多。 | 很少的内存消耗。 |
2. 什么是React?
- React 是 Facebook 在 2011 年开发的前端 JavaScript 库。
- 它遵循基于组件的方法,有助于构建可重用的UI组件。
- 它用于开发复杂和交互式的 Web 和移动 UI。
- 尽管它仅在 2015 年开源,但有一个很大的支持社区。
3. React有什么特点?
React的主要功能如下:
1)它使用虚拟DOM 而不是真正的DOM。
2)它可以用服务器端渲染。
3)它遵循单向数据流或数据绑定。
4. 列出React的一些主要优点。
React的一些主要优点是:
1)它提高了应用的性能
2)可以方便地在客户端和服务器端使用
3)由于 JSX,代码的可读性很好
4)React 很容易与 Meteor,Angular 等其他框架集成
5)使用React,编写UI测试用例变得非常容易
5. React有哪些限制?
React的限制如下:
1)React 只是一个库,而不是一个完整的框架
2)它的库非常庞大,需要时间来理解
3)新手程序员可能很难理解
4)编码变得复杂,因为它使用内联模板和 JSX
6. 什么是JSX?
JSX 是J avaScript XML 的简写。是 React 使用的一种文件,它利用 JavaScript 的表现力和类似 HTML 的模板语法。这使得 HTML 文件非常容易理解。此文件能使应用非常可靠,并能够提高其性能。
7. 你了解 Virtual DOM 吗?解释一下它的工作原理。
Virtual DOM 是一个轻量级的 JavaScript 对象,它最初只是 real DOM 的副本。它是一个节点树,它将元素、它们的属性和内容作为对象及其属性。 React 的渲染函数从 React 组件中创建一个节点树。然后它响应数据模型中的变化来更新该树,该变化是由用户或系统完成的各种动作引起的。
Virtual DOM 工作过程有三个简单的步骤。
1)每当底层数据发生改变时,整个 UI 都将在 Virtual DOM 描述中重新渲染。
2)然后计算之前 DOM 表示与新表示的之间的差异。
3)完成计算后,将只用实际更改的内容更新 real DOM。
8. 为什么浏览器无法读取JSX?
浏览器只能处理 JavaScript 对象,而不能读取常规 JavaScript 对象中的 JSX。所以为了使浏览器能够读取 JSX,首先,需要用像 Babel 这样的 JSX 转换器将 JSX 文件转换为 JavaScript 对象,然后再将其传给浏览器。
Vue
-
什么是MVVM?
-
mvvm和mvc区别?它和其它框架(jquery)的区别是什么?哪些场景适合?
-
组件之间的传值?
-
Vue 双向绑定原理
-
描述下 vue 从初始化页面–修改数据–刷新页面 UI 的过程?
-
虚拟 DOM 实现原理
-
Vue 中 key 值的作用?
-
Vue 的生命周期
-
Vue 组件间通信有哪些方式?
-
vue 中怎么重置 data?
-
组件中写 name 选项有什么作用?
-
Vue 的 nextTick 的原理是什么?
-
Vuex 有哪几种属性?
开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】