1、实现类似如下效果 Human(“Tam”) // log Tam .sleep(1000)// wait 1000 log sleep 1000 .say(“hhh”)// log hhh .sleep(2000); // sleep 2000 log 2000 主要就是考察对于js事件循环的应用。
代码语言:javascript复制function Human(name) {
console.log(name);
const queue = [];
setTimeout(async () => {
let index = 0;
while (queue[index]) {
await queue[index ]();
}
}, 0);
return {
say: function(content) {
queue.push(() => {
console.log(content);
return Promise.resolve();
});
return this;
},
sleep: function(times) {
queue.push(() => {
return new Promise(resolve => {
setTimeout(() => {
console.log("sleep", times);
resolve();
}, times);
});
});
return this;
}
};
}
Human("Tam")
.sleep(1000)
.say("hhh")
.sleep(2000);
代码语言:javascript复制function render(str) {
return function(obj) {
return str.replace(/${(w )}/g, function(match, p1) {
return obj[p1] ? obj[p1] : "";
});
};
}
const year = "2017";
const month = "09";
const day = "21";
const str = render("${year}-${month}-${day}")({ year, month, day });
console.log(str);
代码语言:javascript复制function copy(m) {
const mLength = ("" m).length;
let result = [];
let b = Math.floor(mLength / 2);
for (let i = 10; i < 10 ** b; i ) {
const number =
String(i)
String(i)
.split("")
.reverse()
.join("");
result.push(number);
for (let j = 0; j <= 9; j ) {
result.push(
String(i)
String(j)
String(i)
.split("")
.reverse()
.join("")
);
}
}
result = result.filter(function(item) {
return item <= m;
});
console.log(result);
}
copy(20000);