本篇文章是js基础练习题第二十天的答案及解析部分,纯题目部分请移步js基础练习题 第20天
正文
1.当使用new命令时,实际上执行了哪些操作?
2.如果指定
setTimeout(f, 0),那么f会立即执行吗?关于setTimeout的更多知识,参考MDN|setTimeout。
3.
1 | function f1() { |
f1().then(function(){ return f2(); }).then(console.log)输出___________,f1().then(function(){ f2(); }).then(console.log)输出___________,f1().then(f2()).then(console.log)输出___________,f1().then(f2).then(console.log)输出___________。
关于Promise这部分的分析,其实是比较繁琐的。记住Promise.prototype.then方法返回一个新的promise, 将以回调的返回值来resolve。关于Promise的更多信息,参考MDN|Promise。
4.使用
Promise完成图片的加载。编写一个preLoadImg(url)函数,其中url参数为图片的路径,当图片加载完成时,提示加载成功,否则提示加载失败。参考代码如下所示:
1 | const preLoadImg = (url) => { |
5.当下列代码执行后,会在控制台依次输出______________________。
1 | setTimeout(() => { |
这道题牵扯到了JS的事件循环机制。简而言之呢,就是同步任务先执行,然后执行Promise的then回调,最后进入下一轮事件循环,执行setTimeout或者setInterval的回调。关于事件机制,可参考深入核心,详解事件循环机制。
6.
['1', '1', '1'].map(parseInt)的返回值为___________。Array.prototype.map(item, index, arr)函数接收三个参数,即数组项、索引和整个数组。parseInt(str, base)函数接收两个参数,即要转换的字符串和转换基数。所以上面的代码拆开来就是:
1 | parseInt( |
7.
[typeof null, null instanceof Object]的结果为___________。typeof null的结果为null,是一个特例;对任何基本类型值调用instanceof操作符,都会返回false。
8.
[3, 2, 1].reduce(Math.pow)的结果为___________。相当于(3 ** 2) ** 1。
说明
- 题目中出现的JS指的是采用ECMAScript 2015及之后标准的JavaScript
答案中,若有错误和需完善的地方,可在下方留言反馈哈~~
查看纯习题版,请点击js基础练习题 第20天

