面试季又到了,各位小鲜肉也在着手准备基本的面试、实习。但是,有小鲜肉的思想我确实有点不敢苟同。面试无非就是问一些问题,你能答出来就行,答不出来就 pass。那如果我知道你要问哪些问题,这不就行了吗?感觉这不就是做一场考试吗?
一个学期的课程,我用 7 天学完,题目我都会做,考试分数还比那些学了一个学期的要好得多。那我为什么还要上课呢?现在,侥幸你通过了面试,知道如何做算法题,但在实际工程领域,你这样的人能解决什么问题呢?
年轻人拥有着无限可能大概是这世界上最搞笑的一句话了。本来在这个世界上在某一个领域里做好一件事情都很难的,怎么就无限可能了呢?越是对世界缺少洞见,对自己缺乏了解,越是容易被这句话感动得热泪盈眶。
最近看了一下,基本的面试题目集,发现都是一问一答的形式,这个不是和 7 天速成一模一样了吗?知其然,不知其所以然。那么,我这里也和他们一样,也给大家一份面试题目集,不过,答案并没有写出来,而是在每篇文章里(有些,就直接归纳在下面),你能看懂多少,这个题目你就能解决多少。
而面试题目也会持续更新下去
最新的内容,请访问:front-end-interview
等同于 matrix(1,0,0,1,X,Y);
matrix(a,b,c,d,e,f);
等同于
P0,P1 在一条直线上,P2,P3在一条直线上。其中,P2、P3 x,y 必须在 (0,1) 范围内。而 P0 为 (0,0),P3 为 (1,1)
确定每一帧动画的变换速率。一般是有设计给出,确定整体动画的变换速度。需要注意,每一帧动画,都可以设置独立的 Animation-time-function
。
(CSS 剩下的就是实现效果)
快排,桶排,冒泡,选择,插入
通过取余
最好为质数
开链法,线性探索,简单来说就是对于相同 hash 增加一个二维数组来记录重复。
通过堆栈来解决
通过 split
拆分字符串,通过数组倒序来实现 ( split('').reverse().join('')
)。
对一个数组进行去重,算法为 O(n)?
利用对象 key 唯一的特性,判断每个数组 val(Obj[val] )是否一致即可。
同样利用对象 key 的唯一特性来解决。
通过获取整个 tag ( getElementsByTagName("*")
),然后通过正则匹配(区分单词边界)ClassName 即可。
redux 比 flux 多了一个中间数据的管理--Reducer
componentWillMount => render => componentDidMount
简单来说就是贴图,用来将 2D 图片映射到 3D 坐标系中。首先确定 2D 的范围,然后将指定 2D 范围图片映射到 3D 坐标中。
首先,通过 MeshPhongMaterial
将图片加载到纹理空间,利用 newVector2
确定纹理范围。最后,由 faceVertexUvs
来执行贴图操作。
简单来说就是球坐标系。通过手机滑动来改变,相机的视角位置。基本的公式为
有三个旋转角 alpha、beta、gamma。绕着 Z 轴转动的夹角为 alpha,绕着 X 轴转动的夹角为 beta,绕着 Y 轴转动的夹角为 gamma。其通过 deviceorientation
事件来提供相应数据。
demo.js
的库,规定可以通过全局变量、require\import 等方式使用,应该设置哪些属性?需要设置:
libraryTarget:'umd',
library:'demo'
import
或者 require
引用的解析路径?通过设置 resolve
属性值中的 alias
、 modules
来完成。
loader 主要是用来处理原始 sourceCode,比如 js、css、jsx 文件等。它通过函数式编程一层一层的处理。plugin 主要是处理非 Loader 以外的其它辅助文件。