zoukankan      html  css  js  c++  java
  • 关于面试

    框架类:

    vue 原理

    webpack 

      plugin

    webpack整体是一个插件架构,所有的功能都以插件的方式集成在构建流程中,通过发布订阅事件来触发各个插件执行。webpack核心使用Tapable 来实现插件(plugins)的binding(绑定)和applying(应用)。

    Compiler 模块是 webpack 的支柱引擎,它通过 CLI 或 Node API 传递的所有选项,创建出一个 compilation 实例。它扩展(extend)自 Tapable 类,以便注册和调用插件。大多数面向用户的插件首先会在 Compiler 上注册。

       配置项: entry、output、module( loader )、plugins、devServer、resolve、devtool、optimization

    css:

    盒模型、js 获取对应宽高

    // 通过DOM节点的 style 样式获取
    // 只能获取行内样式,不能获取内嵌的样式和外链的样式
    element.style.width/height;
    
    // 
    window.getComputedStyle(element).width/height;
    
    // 
    element.getBoundingClientRect().width/height;

    包裹性

    BFC

    垂直水平居中

    安卓、ios 行高问题

    布局 - 圣杯布局

    es6:

    promise

    class super

    js:

    原始类型 => 装箱拆箱 => 对象构造 => new 操作符 => 箭头函数、普通函数区别 => 闭包

    js线程 => 事件循环 => 异步执行顺序

    浏览器绘制页面 => 重绘重排

    闭包 => 垃圾回收

    面向对象

    深拷贝

    require 、import 区别

    • require是‘运行时加载‘,只有在代码真正运行的时候才会去加载对应需要的东西,所以不能做到编译时就把想加载的模块加载进来,即不能做到编译时静态化
    • import是编译时调用,所以必须放在文件开头

     JS编译解析的流程

    1. 语法分析,生成抽象语法树(AST)和执行上下文:

        生成 AST 需要经过两个阶段:
            第一阶段是分词(tokenize),又称为词法分析
            第二阶段是解析(parse),又称为语法分析

    2. 预编译,解释器 lgnition 生成字节码

    3. 解释执行,第一次执行,解释器 lgnition 通常会一行行执行代码,解释过程中,若发现一段代码被重复执行多次,即为热点代码,则 编译器 TurboFan 会把该段热点的字节码编译为机器码,再次执行这段被优化的代码时,只需要执行编译后的机器码就可以了,这样就大大提升了代码的执行效率。这就是 即时编译(JIT)

    设计模式

    Class => prototype

    node.js:

    koa、中间件

    http:

    安全:xss、跨域

  • 相关阅读:
    Tomcat的配置
    读《大道至简》总结
    manjaro安装minishift
    minishift 部署mysql持久化
    从大神到小白之路minishift 命令补全
    Typora 完美结合 PicGo,写作体验更佳!
    40 个笑到抽筋的神回复,绝了!
    如何写出让同事好维护的代码?
    Google的面试题长啥样?看完被吊打
    Mac 超详细入门指南,备用!
  • 原文地址:https://www.cnblogs.com/_error/p/12696849.html
Copyright © 2011-2022 走看看