2021面试第二弹来袭

第三场:

1.TCP三次握手,DNS是什么

建立连接需要三个过程(三次握手):

1.主机向服务器发送一个建立连接的请求

2.服务器接到请求后发送同意连接的信号

3.主机接到同意连接的信号后,再次向服务器发送了确认信号

DNS是域名系统(英文:Domain Name System,缩写:DNS)是互联网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。

2.Ref的用法

Ref可以获取本页面的DOM元素,还可以拿到子组件中的data和去调用子组件中的方法,如用于父子间传值。

3.祖孙组件传参

在 vue 中,祖孙组件之间是不能直接通信的,需要通过父组件作为 中间组件。实际上祖父的关系就是两个 父与子 的关系。

1 $props 链  既然是两个父与子之间的关系,那就可以 祖传父 再由 父传子。而 props 可以用来接收来自父组件的值,那就可以通过 props 实现链式传递了。这种方式虽然是比较容易理解,但也是比较繁琐的。中间组件需要接收所有的 props 等。

2 $attrs vue 在 2.4.0 版本中新增了 $attrs 属性。根据前面的理解 $attrs 就是没有在 props 中声明要接收的一些属性。此外,还可以通过 v-bind="$attrs" 把来自父组件的一些属性直接传递到子组件中。在 父组件 中使用 v-on="$listeners" 把祖父组件的事件绑定到孙组件;

在孙组件中触发来自祖父组件的自定义事件就可以了,有两种方式。

① this.$ listeners.eventName(param)

② this.$emit(eventName, param)传递次序:GrandFather → Father → GrandSon

4.自定义UI组件原组件方法如何处理

  使用props,引入原组件,lg:props:{...Table.props}或者mixins: [Table]

  通过v-bind=”$attrs”和v-on=”$listeners”接受父级传递的属性传递给子组件

5.promise与async await优缺点

async/await是写异步代码的新方式,以前的方法有回调函数和Promise。
async/await是基于Promise实现的,它不能用于普通的回调函数。
async/await与Promise一样,是非阻塞的。
async/await使得异步代码看起来像同步代码

区别:

  1. async/await函数前面多了一个async关键字。await关键字只能用在async定义的函数内。async函数会隐式地返回一个promise,该promise的reosolve值就是函数return的值。
    2)我们不能在最外层代码中使用await,因为不在async函数内。

3)使用async函数可以让代码简洁很多,不需要像Promise一样需要些then,不需要写匿名函数处理Promise的resolve值,也不需要定义多余的data变量,还避免了嵌套代码。

4) 错误处理:Async/Await 让 try/catch 可以同时处理同步和异步错误。

6.js模拟多线程

JavaScript是单线程执行的。也就是说,在任何时间点,有且只有一个线程在运行JavaScript程序,无法同一时候运行多段代码。

实现一:用setTimeout制造异步执行的假象

实现二:Concurrent.Thread.js

实现三:WebWork

 

第四场:

1.vue相邻组件传参

  1. .使用中间件eventBus
  2. 使用状态管理工具vueX

2.event Bus如何传值,为啥要写成组件,可不可以对象

在main.js文件中暴露出一个实例,export const eventBus = new Vue()

1).变量通过eventBus.$emit传过去;eventBus.$on传过来的变量

2).新建个bus.js 以组件形式调用

3.vueX如何传值,actions如何异步操作

This.$store.state.xx(变量名) 取值

this.$store.commit(‘xx’, obj) 传值; 第一个参数是mutaions中定义的方法名,第二个参数是赋值对象

Actions异步操作:

在actions中提交mutation,并且可以包含任何的异步操作

一个方法中可以执行多个同步函数 ;store.dispatch在不同模块中可以触发多个action函数

4.路由传参有哪些方式,params为啥一定要配name

常用的有三种:

1).在路径中显示参数,刷新页面参数不丢失 /path/:id

2).通过path匹配路由;在路径中显示参数,刷新页面参数不丢失

3).通过name匹配路由,不在路径中显示参数,刷新页面参数丢失

5.js执行机制

javascript是一门单线程语言,所有任务需要排队,前一个任务结束,才会执行后一个任务。

1、同步和异步任务分别进入不同的执行"场所",同步的进入主线程,异步的进入Event Table并注册函数。
2、当Event Table中指定的事情完成时,会将这个函数移入Event Queue。
3、主线程内的任务执行完毕为空,会去Event Queue读取对应的函数,进入主线程执行。
4、上述过程会不断重复,也就是常说的Event Loop(事件循环)。

6.原型和原型链

原型:

①所有引用类型都有一个__proto__(隐式原型)属性,属性值是一个普通的对象

②所有函数都有一个prototype(原型)属性,属性值是一个普通的对象

③所有引用类型的__proto__属性指向它构造函数的prototype

原型链:

当访问一个对象的某个属性时,会先在这个对象本身属性上查找,如果没有找到,则会去它的__proto__隐式原型上查找,即它的构造函数的prototype,如果还没有找到就会再在构造函数的prototype的__proto__中查找,这样一层一层向上查找就会形成一个链式结构,我们称为原型链。

小结: 此次问题大都不难,简单总结下,与以往也有很多重复的内容被我砍掉了,运气不错面了一个电商公司幸运拿到满意的offer,也祝各位旗开得胜,武运昌隆!

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值