前端基础小总结

43 阅读6分钟

不全后续慢慢更新

css

image-20230404190339310

BFC是指块级格式化上下文(Block Formatting Context),它是 Web 页面中的一个 CSS 渲染模式,用于决定块级元素如何布局及相互影响。BFC可以理解为一个独立的渲染区域,其中的元素按照特定规则进行排列和布局。BFC具有一些特性,比如内部元素会在垂直方向上一个接一个地排列、计算时不会考虑浮动元素的高度等。利用BFC可以很好地解决一些常见的布局问题,如清除浮动、防止 margin 重叠等。

有多种方式可以触发BFC, 包括:

  1. 根元素(html)是一个 BFC。
  2. 浮动元素(float 不为 none)会创建一个新的 BFC。
  3. 绝对定位元素(position 为 absolute 或 fixed)也会创建一个 BFC。
  4. display 值为 inline-block、table-cell、table-caption 的元素会创建一个 BFC。(行内块)
  5. overflow 属性不为 visible 的块级元素会创建一个新的 BFC。(overflow:hidden)

需要注意的是,触发BFC的具体方式取决于布局需求和设计方案,选择合适的方式能够更好地解决问题。

浮动

清除浮动:本元素clear: both;父元素overflow:hidden,可以使用伪元素来清除浮动。这种方法需要在父元素上添加一个伪元素,并将其清除浮动。例如:

.parent-element::after {
  content: "";
  display: block;
  clear: both;}

flex

  1. display: flex;

    这是启用flex布局的基本命令。将此命令应用于父元素

  2. flex-direction: row/column; 默认行排列,变列

  3. justify-content: flex-start/center/flex-end/space-between/space-around;

    在flex容器中的水平对齐方式。你可以使用flex-start将它们对齐到容器的左侧,使用flex-end将它们对齐到容器的右侧,使用center将它们居中对齐,使用space-between将它们平均分布在容器中,使用space-around将它们平均分布在容器中,并在它们之间添加一些额外的空间。

  4. align-items: flex-start/center/flex-end/stretch;

    在flex容器中的垂直对齐方式。你可以使用flex-start将它们对齐到容器的顶部,使用flex-end将它们对齐到容器的底部,使用center将它们居中对齐,使用stretch将它们拉伸以填充容器的高度。

  5. flex-wrap: nowrap/wrap/wrap-reverse;

    是否换行。默认情况下,子元素不会换行,但是你可以使用wrap将它们分成多行或多列,使用wrap-reverse将它们分成多行或多列,并反转它

flex 1:等于相当于 flex-grow: 1 flex-shrink: 1 flex-basix: auto

定位

相对定位position: relative;相对于原来位置移动,

绝对定位position: absolute; 元素会脱离文档流

固定定位position: fixed;

粘性定位position: sticky;

vue

**说一下你对vue生命周期的理解。**
    组件从创建到销毁的过程就是它的生命周期
    创建
        beforeCreat
            在这个阶段属性和方法都不能使用
        created
            这里时实例创建完成之后,在这里完成了数据监测,可以使用数据,修改数据,不会触发updated,也不会更新视图
    挂载
        beforeMount
            完成了模板的编译,虚拟DOM也完成创建,即将渲染,修改数据,不会触发updated
        Mounted
            把编译好的模板挂载到页面,这里可以发送异步请求也可以访问DOM节点
    更新
        beforeUpdate
            组件数据更新之前使用,数据是新的,页面上的数据时旧的,组件即将更新,准备渲染,可以改数据
        updated
            render重新做了渲染,这时数据和页面都是新的,避免在此更新数据
    销毁
        beforeDestroy
            实例销毁前,在这里实例还可以用,可以清楚定时器等等
        destroyed
            组件已经被销毁了,全部都销毁
    使用了keep-alive时多出两个周期:
        activited
            组件激活时
        deactivited
            组件被销毁时
1. beforeCreate:data数据初始化之前,组件还没有数据
2. created: data数据初始化之后,可以获取到组件的数据
3. beforeMount:DOM渲染之前,DOM还没渲染
4. mounted:DOM渲染之后,可以操作DOM了
5. beforeUpdate: 数据更新,DOM更新前
6. updated: 数据更新,DOM更新后
7. beforeDestroy: 组件销毁前
8. destroyed: 组件销毁后
  1. 在 Vue 组件中使用 $route 访问当前路由的信息。
export default {
  mounted() {
    console.log(this.$route.path); // 输出当前路由的路径
    console.log(this.$route.params.id); // 输出当前路由的参数
    console.log(this.$route.query.page); // 输出当前路由的查询参数
  }
}

小程序

js

数据类型:值类型:'undefined', 'number', 'string', 'boolean', 'symbol'

引用类型:'function', 'object'(对象,数组,null)

数组常用方法

  1. 改变原数组的方法:

    1. push():向数组末尾添加一个或多个元素,并返回新的长度。
    2. pop():删除数组末尾的元素,并返回被删除的元素的值。
    3. shift():删除数组的第一个元素,并返回被删除的元素的值。
    4. unshift():向数组的开头添加一个或多个元素,并返回新的长度。
    5. splice():从数组中删除元素,并可以添加新的元素。
    6. sort():对数组进行排序。
    7. reverse():颠倒数组中元素的顺序。

    不改变原数组的方法:

    1. concat():连接两个或多个数组,并返回新的数组。
    2. slice():返回数组的一部分,不会改变原数组。
    3. filter():返回符合指定条件的数组元素,不会改变原数组。
    4. map():对数组中的每个元素进行操作,并返回新的数组。
    5. reduce():对数组中的元素进行累加,返回一个值。
    6. every():检查数组中的所有元素是否符合指定条件。
    7. some():检查数组中是否有至少一个元素符合指定条件。

数组去重

1.使用Set对象:Set对象是一种集合类型,它只存储唯一的值。可以将数组转换为Set对象,然后再将Set对象转换回数组,就可以去除数组中的重复项。

2.使用filter()和indexOf()方法:可以使用filter()方法和indexOf()方法结合,遍历数组并筛选出不重复的元素。

es6

  1. 新增了块级作用域(let,const)
  2. 提供了定义类的语法糖(class)
  3. 新增了一种基本数据类型(Symbol)
  4. 新增了变量的解构赋值
  5. 新增了扩展运算符
  6. promise

js继承

JavaScript中的继承是通过原型链来实现的,每个对象都有一个原型对象,可以通过原型对象实现属性和方法的继承。借用构造函数继承可以实现子类继承父类的属性,但无法继承父类原型对象的方法。组合继承将原型链继承和借用构造函数继承结合起来,既可以继承父类的属性,也可以继承父类原型对象的方法。而ES6中的class关键字和extends关键字可以让面向对象编程更加简单,并且可以避免原型链继承中一些潜在的问题。举个例子,一个动物类可以定义一些公共的属性和方法,然后通过继承该类来实现具体的动物,如狗、猫等,这样可以避免重复代码并提高代码的复用性。 后续慢慢更新