【无标题】

vue模版编译原理

https://segmentfault.com/a/1190000013763590

  1. 第一步是将 模板字符串 转换成 element ASTs(解析器)
  2. 第二步是对 AST 进行静态节点标记,主要用来做虚拟DOM的渲染优化(优化器)
优化器的目标是找出那些静态节点并打上标记,而静态节点指的是 DOM 不需要发生变化的节点
什么是静态根节点? 答:子节点全是静态节点的节点就是静态根节点

整体逻辑其实就是递归 AST 这颗树,然后将 静态节点 和 静态根节点 找到并打上标记。

  1. 第三步是 使用 element ASTs 生成 render 函数代码字符串(代码生成器)

http缓存机制

https://www.cnblogs.com/chenqf/p/6386163.html

实现一个eventBus

html是怎么在页面画出来的

v-html 怎么防止xss攻击
https://www.cnblogs.com/chenqf/p/5200713.html

盒子模型

BFC盒模型 Block Formatting Context 块级格式化上下文

一个BFC区域包含创建该上下文元素的所有子元素,但是不包括创建了新的BFC的子元素的内部元素

触发BFC的条件

  • body根元素
  • 设置浮动,不包括none
  • 设置定位,absoulte或者fixed
  • 行内块显示模式,inline-block
  • 设置overflow,即hidden,auto,scroll
  • 表格单元格,table-cell 弹性布局,flex

• 在 标准盒子模型中,width 和 height 指的是内容区域的宽度和高度。增加内边距、边框和外边距不会影响内容区域的尺寸,但是会增加元素框的总尺寸。
• IE盒子模型中,width 和 height 指的是内容区域+border+padding的宽度和高度。

flex实现相关布局问题

flex-direction: column; 可以设置主轴的方向 默认应该是row
justify-content 用于设置或检索弹性盒子元素在主轴(横轴)方向上的对齐方式。
设置交叉轴对齐方式,可以垂直移动主轴。

如果主轴是默认的(横轴)
/* 对齐方式 /
justify-content: center; /
居中排列 /
justify-content: start; /
从行首开始排列 /
justify-content: end; /
从行尾开始排列 /
justify-content: flex-start; /
从行首起始位置开始排列 /
justify-content: flex-end; /
从行尾位置开始排列 /
justify-content: left; /
一个挨一个在对齐容器得左边缘 /
justify-content: right; /
元素以容器右边缘为基准,一个挨着一个对齐, */

/* 基线对齐 */
justify-content: baseline;
justify-content: first baseline;
justify-content: last baseline;

/* 分配弹性元素方式 /
justify-content: space-between; /
均匀排列每个元素
首个元素放置于起点,末尾元素放置于终点 /
justify-content: space-around; /
均匀排列每个元素
每个元素周围分配相同的空间 /
justify-content: space-evenly; /
均匀排列每个元素
每个元素之间的间隔相等 /
justify-content: stretch; /
均匀排列每个元素
‘auto’-sized 的元素会被拉伸以适应容器的大小 */

在这里插入图片描述

在这里插入图片描述

移动端适配以及rem的具体计算
typeof与instanceof判断数据类型
typeof虽然对原始值很有用,但它对引用值的用处不大。我们通常不关心一个值是不是对象,而是想知道它是什么类型的对象。为了解决这个问题,ECMAScript 提供了 instanceof 操作符。使用如下:

    function f1() { console.log(111); }
    console.log(f1 instanceof Object);//true
    console.log(f1 instanceof Function);//true
    console.log(f1 instanceof RegExp);//false

instanceof实现原理

事件循环机制(宏任务、微任务)以及相应代码写执行顺序
js循环引用
深拷贝用js如何去实现

webpack常用loader、plugin

当 webpack 碰到不识别的模块的时候,webpack 会在配置的 module 中进行该文件解析规则的查找

rules 就是我们为不同类型的文件定义的解析规则对应的 loader,它是一个数组
通过 test 选项来匹配需要处理的文件,通常通过正则的方式来匹配文件后缀类型
use 针对匹配到文件类型,调用对应的 loader 进行处理

module.exports = {
    module: {
        rules: [
            {
                test: /\.xxx$/,
                use: {
                    loader: 'xxx-loader'
                }
            }
        ]
    }
}

css-loader、style-loader、image-webpack-loader(压缩图片)、file-loader、vue-loader
把识别出的资源模块,移动到指定的输出⽬目录,并且返回这个资源在输出目录的地址(字符串)

Plugins 扩展 webpack 本身的一些功能,它们会运行在 webpack 的不同阶段(钩子 / 生命周期)。

例如:clean-webpack-plugin 在新一轮构建时,把之前的包都清理掉
HtmlWebpackPlugin 在打包结束后,⾃动生成⼀个 html 文件,并把打包生成的 js 模块引⼊到该 html 中

webpack执行流程与实现原理

linux常用操作命令 直接说不会
CI/CD的一些问题
前端攻击 XSS,CSRF ?避免方法?
说一下http缓存机制

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值