博客
关于我
20K前端程序员的面试秘籍,学会Offer拿到手软
阅读量:108 次
发布时间:2019-02-26

本文共 3086 字,大约阅读时间需要 10 分钟。

也许很多人觉得大前端这个概念很新,但实际上这个概念已经出现好几年了。

2017年,当时以饿了么为代表的一些企业开始提出大前端的概念。2018年,InfoQ举办了首届全球大前端技术大会(GMTC),在大会中将前后端分离、跨平台和PWA等技术设立了专场。去年5G风口下,前端岗位的内涵和外延不断扩大。

今年,大前端趋势已经愈发明显,层出不穷的跨平台技术,BATJ大厂均已布局小程序、移动端,拿offer须会多端开发。这些都在告诉我们,大前端的浪潮已经来了!

不少人问我到底什么是大前端,简单来说,大前端是一种变化形态多过于固定的职责范围,是“前端”职责范围的延伸。

说起大前端盛行后,所带来的影响已经初见端倪,企业开始缩减人力成本,前端岗位竞争越发激烈。一些自媒体也开始看衰移动端开发,“移动端饭碗要被抢了”,“听说原生开发没人要了”,这些言论频繁出现在各大社群中,给众多移动端程序员造成了极度的不安。

面试固然有技巧,但绝不是伪造与吹流弊,通过一段短时间沉下心来闭关修炼,出山收割,步入大厂,薪资翻番,岂不爽哉?

修炼原则

想必大家很厌烦笔试和考察知识点。因为其实在平时实战中,讲究的是开发效率,很少会去刻意记下一些细节和深挖知识点,脑海中都是一些分散的知识点,无法系统性地关联成网,一直处于似曾相识的状态。不知道多少人和博主一样,至今每次写阻止冒泡都需要谷歌一番如何拼写。🤪。

以如此的状态,定然是无法在面试的战场上纵横的。其实面试就犹如考试,大家回想下高考之前所做的事,无非就是 理解 和 系统性关联记忆。本秘籍的知识点较多,花点时间一个个理解并记忆后,自然也就融会贯通,无所畏惧。
由于本秘籍为了便于记忆,快速达到应试状态,类似于复习知识大纲。知识点会尽量的精简与提炼知识脉络,并不去展开深入细节,面面俱到。有兴趣或者有疑问的童鞋可以自行谷歌下对应知识点的详细内容。😋

CSS

  1. 盒模型
    页面渲染时,dom 元素所采用的 布局模型。可通过box-sizing进行设置。根据计算宽高的区域可分为:
  • content-box (W3C 标准盒模型)
    border-box (IE 盒模型)
    padding-box (FireFox 曾经支持)
    margin-box (浏览器未实现)

Tips: 理论上是有上面 4 种盒子,但现在 w3c 与 mdn 规范中均只支持 content-box 与 border-box;

  • BFC

  • 块级格式化上下文,是一个独立的渲染区域,让处于 BFC 内部的元素与外部的元素相互隔离,使内外元素的定位不会相互影响。

  • IE下为 Layout,可通过 zoom:1 触发

  • 触发条件:

    根元素

    position: absolute/fixed
    display: inline-block / table
    float 元素
    ovevflow !== visible

  • 规则:

    属于同一个 BFC 的两个相邻 Box 垂直排列
    属于同一个 BFC 的两个相邻 Box 的 margin 会发生重叠
    BFC 中子元素的 margin box 的左边, 与包含块 (BFC) border box的左边相接触 (子元素 absolute 除外)
    BFC 的区域不会与 float 的元素区域重叠
    计算 BFC 的高度时,浮动子元素也参与计算
    文字层不会被浮动层覆盖,环绕于周围

  • 应用:
    阻止margin重叠
    可以包含浮动元素 —— 清除内部浮动(清除浮动的原理是两个div都位于同一个 BFC 区域之中)
    自适应两栏布局
    可以阻止元素被浮动元素覆盖

3.层叠上下文

元素提升为一个比较特殊的图层,在三维空间中 (z轴) 高出普通元素一等。

  • 触发条件

    根层叠上下文(html)

    position

  • css3属性

  • flex

    transform
    opacity
    filter
    will-change
    -webkit-overflow-scrolling

  • 层叠等级:层叠上下文在z轴上的排序

    在同一层叠上下文中,层叠等级才有意义

    z-index的优先级最高
    在这里插入图片描述

  1. 居中布局
  • 水平居中

    行内元素: text-align: center

    块级元素: margin: 0 auto
    absolute + transform
    flex + justify-content: center

  • 垂直居中

    line-height: height

    absolute + transform
    flex + align-items: center
    table

  • 水平垂直居中

    absolute + transform

    flex + justify-content + align-items

  1. 选择器优先级
  • !important > 行内样式 > #id > .class > tag > * > 继承 > 默认
    选择器 从右往左 解析

6.去除浮动影响,防止父级高度塌陷

  • 通过增加尾元素清除浮动

    :after /

    : clear: both

    创建父级 BFC

    父级设置高度

7.link 与 @import 的区别

  • link功能较多,可以定义 RSS,定义 Rel 等作用,而@import只能用于加载 css
    当解析到link时,页面会同步加载所引的 css,而@import所引用的 css 会等到页面加载完才被加载
    @import需要 IE5 以上才能使用
    link可以使用 js 动态引入,@import不行
  1. CSS预处理器(Sass/Less/Postcss)
  • CSS预处理器的原理: 是将类 CSS 语言通过 Webpack 编译 转成浏览器可读的真正 CSS。在这层编译之上,便可以赋予 CSS 更多更强大的功能,常用功能:

  • 嵌套

  • 变量

  • 循环语句

  • 条件语句

  • 自动前缀

  • 单位转换

  • mixin复用

面试中一般不会重点考察该点,一般介绍下自己在实战项目中的经验即可~

9.CSS动画

  • transition: 过渡动画

    transition-property: 属性
    transition-duration: 间隔
    transition-timing-function: 曲线
    transition-delay: 延迟
    常用钩子: transitionend

  • animation / keyframes

    animation-name: 动画名称,对应@keyframes

    animation-duration: 间隔
    animation-timing-function: 曲线
    animation-delay: 延迟
    animation-iteration-count: 次数

  • infinite: 循环动画

    animation-direction: 方向
    alternate: 反向播放
    animation-fill-mode: 静止模式
    forwards: 停止时,保留最后一帧
    backwards: 停止时,回到第一帧
    both: 同时运用 forwards / backwards
    常用钩子: animationend

  • 动画属性: 尽量使用动画属性进行动画,能拥有较好的性能表现

    translate
    scale
    rotate
    skew
    opacity
    color

经验

通常,CSS 并不是重点的考察领域,但这其实是由于现在国内业界对 CSS 的专注不够导致的,真正精通并专注于 CSS 的团队和人才并不多。因此如果能在 CSS 领域有自己的见解和经验,反而会为相当的加分和脱颖而出。

转载地址:http://ksik.baihongyu.com/

你可能感兴趣的文章
Mysql不同官方版本对比
查看>>
MySQL与Informix数据库中的同义表创建:深入解析与比较
查看>>
mysql与mem_细说 MySQL 之 MEM_ROOT
查看>>
MySQL与Oracle的数据迁移注意事项,另附转换工具链接
查看>>
mysql丢失更新问题
查看>>
MySQL两千万数据优化&迁移
查看>>
MySql中 delimiter 详解
查看>>
MYSQL中 find_in_set() 函数用法详解
查看>>
MySQL中auto_increment有什么作用?(IT枫斗者)
查看>>
MySQL中B+Tree索引原理
查看>>
mysql中cast() 和convert()的用法讲解
查看>>
mysql中datetime与timestamp类型有什么区别
查看>>
MySQL中DQL语言的执行顺序
查看>>
mysql中floor函数的作用是什么?
查看>>
MySQL中group by 与 order by 一起使用排序问题
查看>>
mysql中having的用法
查看>>
MySQL中interactive_timeout和wait_timeout的区别
查看>>
mysql中int、bigint、smallint 和 tinyint的区别、char和varchar的区别详细介绍
查看>>
mysql中json_extract的使用方法
查看>>
mysql中json_extract的使用方法
查看>>