farFetch二面

215 阅读3分钟

1.postcss 使用过吗

2.在js里写css这种尝试过吗

juejin.cn/post/684490… juejin.cn/post/715314…

3.全局的css应该怎么配置

具体参见 managePlatform 项目
1.在webpack里配置less
2.在src目录下创建styles文件夹,其内配置黑白两色主题变量集index.css,如下
/* 暗色主题 */
:root[theme='dark']{
    
   --common-content-bg:url(../../../assets/images/dark/content.png) no-repeat;
   --common-head-bg:url(../../../assets/images/dark/head.png) no-repeat;
   --theme-color:#1A3B4A;
   --word-color: #ffffff;
   --icon-color: #ffffff;
   --num-color: #00FFFF;
   --tabs_plan-back:#00FFFF; 
   --img-info-bg: #1A3B4A;
   --img-info-color: white;
 }
 
:root是一个伪类,表示文档根元素,所有主流浏览器均支持 
:root 选择器,除了 IE8 及更早的版本。在:root中声明相当于全局属性
只要当前页面引用了:root segment所在文件,都可以使用var()来引用

var()函数可以代替元素中任何属性中的值的任何部分
var()函数不能作为属性名、选择器或者其他除了属性值之外的值
(这样做通常会产生无效的语法或者一个没有关联到变量的值)

3.在app.js里将2中的css文件引入
import './styles/theme/dark/index.css';
import './styles/theme/light/index.css';

4.在less文件里引入变量
div {
  background-color: var(--blue);  /* 设置背景颜色为蓝色 */
}

4.如何进行性能优化

5.你在项目里遇到的难点及解决方案

6.浏览器缓存什么时候是from memory什么时候是from disk

  • 较小的文件会缓存在memory中
  • 较大的会优先放到disk中
  • memory中的读取速度会更快,但是它的空间相对比较小

读取地方与加载方式有关

  • 在地址栏中输入地址,主要是disk cache,如果没有再去服务器请求资源;
  • 刷新网页(F5)):会根据当前运行环境内存来决定是从 Memory Cache 还是 从Disk Cache中,优先使用memory cache,没有匹配到的再去disk cache中查找;
  • 强制刷新(Ctrl + F5):从服务器请求,不使用缓存,加载时间会比较慢;

blog.csdn.net/weixin_4503…

7.url输入后全过程以及发请求的顺序,例如是先发html、css还是js,以及事先发字体请求还是图片请求

此问题的本质是浏览器的加载顺序是什么?

  • 将加载的资源进行分类
  • 进行安全性检查(跨域就是在这个阶段检查的)
  • 对加载的资源进行分级
  • 根据优先级加载资源

浏览器加载资源的顺序:

  • 最高级:html,css,font
  • 然后:js,xhr
  • 然后是多媒体:图片-语音-视频
  • 最后:prefetch预加载的资源

根据实际的规则,浏览器会对加载的资源顺序有所调整:

  • 同步的xhr请求优先级最高
  • 如果图片的视图在可见范围之内,优先加载图片

blog.csdn.net/XZZ2222/art…

8.object和string类型存储在什么地方

  1. 如果是基础类型,那栈中存的是数据本身。
  2. 如果是对象类型,那栈中存的是堆中对象的引用,对象本身存在堆中
  3. 闭包存在heap中 juejin.cn/post/696175…

9.git rebase和git merge的区别

learngitbranching.js.org/?locale=zh_…

10.Proxy讲一下

juejin.cn/post/718208…

11.eslint有配置过吗

ESLint检查原理

要实现静态分析则需要自建一个预编译阶段对代码进行解析。

首先我们看看大部分编译器工作时的三个阶段:

  • 解析:将未经处理的代码解析成更为抽象的表达式,通常为抽象语法树,即 AST
  • 转换:通过修改解析后的代码表达式,将其转换为符合预期的新格式。
  • 代码生成:将转换后的表达式生成为新的目标代码。

对于 ESLint 来说,规则校验发生在将 JavaScript 代码解析为 AST 之后,遍历 AST 的过程中。ESLint 采用 Espree 来生成 AST。具体的生成方法在这里。 我们可以使用AST explorer来查看代码被解析后生成的 AST