常见前端问题概念

1.浏览器渲染页面的过程

用户输入URL地址
浏览器解析URL解析出主机名
浏览器将主机名转换成服务器ip地址(浏览器先查找本地DNS缓存列表 没有的话 再向浏览器默认的DNS服务器发送查询请求 同时缓存)
浏览器将端口号从URL中解析出来
浏览器建立一条与目标Web服务器的TCP连接(三次握手)
浏览器向服务器发送一条HTTP请求报文
服务器向浏览器返回一条HTTP响应报文
关闭连接 浏览器解析文档

2.异步编程的四种方法

①回调②事件监听③观察者模式(发布和订阅)④promise

3.解释同步异步、阻塞非阻塞、并行并发之间的区别

  阻塞调用是指调用结果返回之前,调用者会进入阻塞状态等待。只有在得到结果之后才会返回。

  非阻塞调用是指在不能立刻得到结果之前,该函数不会阻塞当前线程,而会立刻返回。

  同步:在发出一个同步调用时,在没有得到结果之前,该调用就不返回。

  异步:在发出一个异步调用后,调用者不会立刻得到结果,该调用就返回了。

 并发是指一个时间段内,有几个程序都在同一个CPU上运行,但任意一个时刻点上只有一个程序在处理机上运行。
 并行是指一个时间段内,有几个程序都在几个CPU上运行,任意一个时刻点上,有多个程序在同时运行,并且多道程序之间互不干扰。

4.CPU调度策略

在并发运行中,CPU需要在多个程序之间来回切换,那么如何切换就有一些策略

1 先来先服务 - 时间片轮转调度

这个很简单,就是谁先来,就给谁分配时间片运行,缺点是有些紧急的任务要很久才能得到运行。

2 优先级调度

每个线程有一个优先级,CPU每次去拿优先级高的运行,优先级低的等等,为了避免等太久,每等一定时间,就给线程提高一个优先级

3 最短作业优先

把线程任务量排序,每次拿处理时间短的线程运行,就像我去银行办业务一样,我的事情很快就处理完了,所以让我插队先办完,后面时间长的人先等等,时间长的人就很难得到响应了。

4 最高响应比优先

用线程的等待时间除以服务时间,得到响应比,响应比小的优先运行。这样不会造成某些任务一直得不到响应。

5 多级反馈队列调度

有多个优先级不同的队列,每个队列里面有多个等待线程。 
CPU每次从优先级高的遍历到低的,取队首的线程运行,运行完了放回队尾,优先级越高,时间片越短,即响应越快,时间片就不是固定的了。 
队列内部还是用先来先服务的策略。

5.js实现数值千分位

6.React非父子、兄弟组件传值

共用父组件然后Props传值、使用状态管理redux(推荐)等

7."123456789876543212345678987654321..."的第n位是什么?

8.如何实现自己实现过Promise

9.new 一个对象后发生了什么?

10.说一下原型和原型链

11.有没有自己写过比较复杂的正则?

12.有没有封装过axios?

 

前后分离的系统,一个请求出错了,如何中断其它请求?

如何在axios中添加登陆验证?

原文地址:https://www.cnblogs.com/lidedong/p/9588272.html