每周工做日会出一道小题,一周五题,周六分享会复盘结束后本人会将问题与答案整理出来~方便群内小伙伴复习。javascript
这里只整理简短的解析与答案(可是我会在每周复盘中详细讲解以及扩展),具体内容不懂的话能够谷歌或者私我,固然仍是建议你们多多思考多多讨论。css
天天第一名正确回答并解释完整的同窗能够得到群主的奖励红包前端
async function f() {
await p;
fn();
}
=>
function f() {
return Promise.resolve(p).then(() => {
fn();
})
}
复制代码
p 当即执行,fn 为 Promise resolve后的回调,推入微任务队列java
答案:数组
script start async1 start async2 promise1 script end async1 end promise2 setTimeoutpromise
核心代码为 var a = b = 3
,其等同于async
b = 3;
var a = b;
复制代码
答案:oop
undefinedui
numberthis
答案: 10 2
class ManagerClass {
constructor(name) {
this.taskList = [];
console.log(`Hi I am ${name}`);
setTimeout(() => this.next(), 0);
}
sleepFirst(time) {
let fn = () => {
console.log(`Sleep ${time}s...`);
setTimeout(() => {
this.next();
}, time * 1000);
}
this.taskList.unshift(fn);
return this;
}
sleep(time) {
let fn = () => {
console.log(`Sleep ${time}s...`);
setTimeout(() => {
this.next();
}, time * 1000);
}
this.taskList.push(fn);
return this;
}
eat(name) {
let fn = () => {
console.log(`I am eating ${name}`);
this.next();
}
this.taskList.push(fn);
return this;
}
next() {
let fn = this.taskList.shift();
fn && fn();
}
}
function Manager(name) {
return new ManagerClass(name);
}
Manager('AddOne').eat('breakfast').eat('lunch').sleepFirst(2).sleep(1).eat('dinner');
复制代码
请用一种简单方案实现如图效果
第一种:绘制三角形后定位到左上角
第二种:渐变
background:linear-gradient(135deg, #F3AC3C 100px, #0B2429 0);
复制代码
使用 requestAnimationFrame 实现一个 setInterval
function setInterval(func, interval) {
let last = +new Date();
let timer;
const loop = () => {
let now = +new Date();
timer = window.requestAnimationFrame(loop);
if(now - last >= interval) {
last = now;
func(timer);
}
}
timer = window.requestAnimationFrame(loop);
return timer;
}
let count = 0;
setInterval(timer => {
console.log(1);
count++;
if(count === 5) cancelAnimationFrame(timer);
}, 1000)
复制代码
天天群内会发一道技术小题,每周末会有视频技术分享和前端题复盘。
只面向前端大学生,但愿积极活跃的你进群聊生活聊技术聊Idea。
欢迎大学生前端进群交流呀 ~ 小群人数很少,进群就是朋友,之后规模也会限制在50人左右~