语法: Promise.allSettled(iterable); 其中 iterable 是一个可迭代的对象,例如 Array,其中每个成员都是 Promise。 不同于 Promise.prototype.all, 其不管 resolve 还是 reject,最后的回调函数都会执行。
说明: 候选人可以选择 ts 或者 js 实现,当然用纯碎的 ts 实现可以加分。
if (Promise.prototype.allSettled === void 0) {
// ts
Promise.prototype.allSettled = function<T>(ps: Promise<T>[]): Promise<T>[] {
return ps;
};
// js
Promise.prototype.allSettled = ps => {
return ps;
};
}
如何优化这个代码?
提示:
<template>
<div>
<button>点我复制</button>
</div>
</template>
<script>
export default {
methods() {
const btn = document.querySelector("#btn");
btn.addEventListener("click", () => {
const input = document.createElement("input");
document.body.appendChild(input);
input.setAttribute("value", "你想让用户复制到剪贴板的内容");
input.select();
if (document.execCommand("copy")) {
document.execCommand("copy");
console.log("复制成功");
}
document.body.removeChild(input);
});
}
};
</script>
如下,运营商可能往你的 html 中注入脚本,也可能修改你的脚本内容。 如何定位和解决问题。
<html>
<!-- 一种是增加一个js -->
<script src="http://your-site.js"></script>
<script src="http://not-your-site.js"></script>
<!-- 一种是修改你的js -->
<script src="http://your-modified-site.js"></script>
</html>
我们平时都会用到 CDN,不管是自建还是用现有的 CDN 服务商。那么 CDN 给我们带来了什么样的好处,它是做到的呢?
提示:
//假设这句同步代码会执行999次,执行一次耗时1ms
expect(add(1,2)).to.be(3)
// 这是一个很耗时的异步操作,会执行1000ms
require("fs").readFile("bigFile.jpg")
基于这两个场景,你如何去设计你的架构,可以让国外用户顺畅地去浏览你的网站
声明一个函数
function a(){}
说出下列代码执行后的结果
a.bind.bind.bind()
说明:考察候选人对原型、原型链以及原生bind方法的理解
提示:
1.在执行代码期间可能会发生比如类型错误,引用错误 2.通信错误,比如后端服务挂掉等
给定一个非空数组,返回数组中第三大的数,如果不存在,则返回数组中最大的数
示例1:
输入:[3,2,1]
输出:1
解释:第三大的数是1
示例2:
输入:[1,2]
输出:2
解释:第三大的数不存在,所以返回最大的数2
示例2:
输入:[2,2,3,1]
输出:1
解释:注意要求返回第三大的数,是指第三大且唯一出现的数。存在两个值为2的数,它们都排第二
