前端面试题set和马匹
时间: 2023-11-28 10:41:48 浏览: 38
set是一种ES6中新增的数据结构,它类似于数组,但是成员的值都是唯一的,没有重复的值。set可以用来去重,判断某个值是否存在等。而马匹问题是一个经典的算法问题,需要在25匹马中挑出速度最快的3匹,每场比赛只能有5匹马一起跑。这个问题可以使用分治法来解决,具体的解法可以参考引用中的排序部分。需要的最少比赛次数是7次。
相关问题
前端面试题await和async
async/await 是 ES2017 中引入的一种异步编程的解决方案,它是基于 Promise 实现的。async/await 让异步代码看起来像同步代码,使得代码可读性更好,也更容易维护。
async/await 的使用方法是在函数前面加上 async 关键字,然后在函数内部使用 await 关键字来等待 Promise 对象的返回结果。当 await 关键字后面的 Promise 对象状态变为 resolved 时,await 表达式的值就是 resolved 的值;当 Promise 对象状态变为 rejected 时,await 表达式会抛出错误。
下面是一个使用 async/await 的例子:
```
async function getData() {
try {
const response = await fetch('https://api.example.com/data');
const data = await response.json();
console.log(data);
} catch (error) {
console.error(error);
}
}
```
在上面的例子中,我们使用了 async/await 来获取一个 API 的数据。首先我们使用 fetch 函数来获取数据,fetch 函数返回一个 Promise 对象,我们使用 await 关键字等待 Promise 对象的返回结果。当 Promise 对象状态变为 resolved 时,我们使用 await 关键字获取 resolved 的值,并将其转换为 JSON 格式。最后我们打印出获取到的数据。
tcp和udp前端面试题
以下是关于TCP和UDP的前端面试题的回答:
1. TCP与UDP的区别:
TCP是面向连接的协议,类似于打电话前需要先建立连接再进行通话,而UDP在发送前不需要建立连接,直接发送,不在乎接收端是否完全接收到。
2. TCP的连接建立和断开过程:
TCP连接的建立需要经过三次握手,而断开则需要四次挥手。在三次握手中,客户端发送SYN包给服务器,服务器接收后回复SYN+ACK包给客户端,最后客户端再回复ACK包给服务器,完成连接的建立。在四次挥手中,客户端发送FIN包给服务器,服务器接收后回复ACK包给客户端,然后服务器发送FIN包给客户端,最后客户端回复ACK包给服务器,完成连接的断开。
3. TCP发送信息的正确性和顺序保证:
TCP通过序号和确认号来保证发送的信息是正确的,并且保证其先后顺序不被篡改。每个TCP报文段都有一个序号,接收方会根据序号对报文段进行排序和重组,从而保证信息的正确性和顺序。
4. TCP和UDP适用场景:
如果想发送即时消息,应该使用UDP协议,因为UDP不需要建立连接,可以快速地发送消息,适合实时性要求高的场景。而TCP适合对数据传输要求严格的场景,因为它能够保证数据的可靠性和顺序性。