前端面试复盘(一年经验)

前段时间的面试,总结一下被问到的问题(一年经验)

基础八股文

1. mvc和mvvm详细区别 ,其中每个分别是什么?具体实现过程是怎样的?

(1)MVC全名是Model View Controller:模型(model)-视图(view)-控制器(controller)的缩写。Controller负责将Model的数据用View显示出来,换句话说就是在Controller里面把Model的数据赋值给View。
(2)Mvvm定义MVVM是Model-View-ViewModel的简写。即模型-视图-视图模型。在MVVM的框架下,视图和模型是不能直接通信的,它们通过ViewModal来通信,当数据发生变化,ViewModel能够监听到数据的这种变化,然后通知到对应的view自动更新;当用户操作视图,ViewModel也能监听到视图的变化,然后通知数据做改动,这实际上就实现了数据的双向绑定。并且MVVM中的View和ViewModel可以互相通信。
在这里插入图片描述
在这里插入图片描述

2. 为什么会选择Vue或者说vue的优点有什么?

1.轻量级的框架,循序渐进搭建。
2.响应式编程,双向数据绑定。
3.组件化。
4.虚拟dom操作。
5.可读性强(css、js、html在同一个页面)。

3. 数据双向绑定的原理?

采用数据劫持结合发布者-订阅者模式的方式,通过Object.defineProperty()来给各个属性添加setter,getter并劫持监听,在数据变动时发布消息给订阅者,触发相应的监听回调。

ps: Vue3.x改用Proxy替代Object.defineProperty实现数据劫持。

4. 盒子模型(很少问了)

5. BFC是什么?

  • 内部的Box会在垂直方向,一个接一个地放置。
  • Box垂直方向的距离由margin决定。属于同一个BFC的两个相邻Box的margin会发生重叠。
  • 每个盒子(块盒与行盒)的margin box的左边,与包含块border box的左边相接触(对于从左往右的格式化,否则相反)。即使存在浮动也是如此。
  • BFC就是页面上的一个隔离的独立容器,容器里面的子元素不会影响到外面的元素。反之也如此。

6. 选择器优先级

   !important>行内样式>id选择器>类选择器>标签选择器>通配符>继承

7. 什么情况下会发生布尔值的隐式强制类型转换?

(1) if (…) 语句中的条件判断表达式。
(2) for ( … ; … ; … ) 语句中的条件判断表达式(第二个)。
(3) while (…) 和 do…while(…) 循环中的条件判断表达式。
(4) ? : 中的条件判断表达式。
(5) 逻辑运算符 ||(逻辑或)和 &&(逻辑与)左边的操作数(作为条件判断表达式)。

8. v-for、v-if优先级?

9. 同步和异步是什么?

(1)同步指的是当一个进程在执行某个请求的时候,如果这个请求需要等待一段时间才能返回,那么这个进程会一直等待下去,直到消息返回为止再继续向下执行。

(2)异步指的是当一个进程在执行某个请求的时候,如果这个请求需要等待一段时间才能返回,这个时候进程会继续往下执行,不会阻塞等待消息的返回,当消息返回时系统再通知进程进行处理。

11. 如何获取dom节点?

12. Vue中为何使用key?

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值