前端面试(一)

57 阅读2分钟

基础知识:

1."=="和"==="的区别?

都是比较运算符,'=='会在比较之前进行类型转换,如果比较的两个值类型不同,会先转为相同的类型。 ‘===’运算都执行严格的相等比较,不但判断值相同,还会判断类型相同。

2.浮动会造成什么影响?怎么清除浮动?

导致什么问题:
1.元素重叠:浮动的元素会脱离标准文档流,浮在其他元素上面。
2.父元素的高度塌陷:当父元素中所有的子元素都被浮动时,父元素的高度会塌陷。 清除浮动:
1.overflow:hidden
2.父级元素的最后添加::after伪元素

 .parent::after{
    content:'';
    display:block;
    clear:both;
}

3.置换元素

置换元素是指在渲染过程中由浏览器根据元素的标签和属性决定如何显示的一类元素。这些元素内容不受css的影响,由浏览器根据元素本身的规则进行渲染的。
例如:<img> <input> <select>
特点:1.内容不受css影响
2.替换内容
3.尺寸固定
4.可替换性

4.怎么画出一个0.5px的线?

可以使用transfrom属性里面的:scale 来进行缩放。

5.vue2和vue3的区别?

  1. 生命周期不同
  • 卸载阶段
    • vue2是beforeDestroy destroyed
    • vue3是beforeUnmount unmounted -vue3新增了组合式开发模式,生命周期改了名字
  1. 组间通信方法不同 image.png
  2. 指令不同
  • v-for和v-if的优先级不同
    • vue2里面v-for的优先级要大于v-if
    • vue3里面v-if的优先级要大于v-for
  • vue3新增了一个指令v-memo来缓存Dom
  • vue3删除了v-bind:xxx.sync
  • vue3 里面v-model 用法不一样
  1. 开发模式不同
  • vue2只有选项式开发模式
  • vue3除了有选项式开发模式,还有组合式开发模式
  1. 响应式原理不同
  • vue2通过defineProperty实现响应式
  • vue3通过Proxy实现响应式

5.什么是闭包?哪里用到了?

闭包就是一个引用关系
两个函数相互嵌套,内部函数引用了外部函数的局部变量,并把内部函数返回出去了,这样就形成了闭包
作用延长局部变量的生命周期,函数外部能间接操作内部的局部变量