现在,调用foo,并打印First。
foo从堆栈弹出,baz被调用,并打印Third。
WebAPI不能只是在准备就绪时将内容添加到堆栈中。 相反,它将回调函数推送到一个称为任务队列的东西。
这是事件循环开始工作的地方。 事件循环查看堆栈和任务队列。 如果堆栈为空,则会占用队列中的第一个内容并将其推送到堆栈中。
bar被调用,Second被打印,它从栈中弹出。
31. 单击按钮时event.target是什么?
<div onclick="console.log('first div')"> <div onclick="console.log('second div')"> <button onclick="console.log('button')"> Click! </button> </div> </div>
A: div外部
B: div内部
C: button
D: 所有嵌套元素的数组.
答案: C
导致事件的最深嵌套元素是事件的目标。 你可以通过event.stopPropagation停止冒泡
32. 单击下面的html片段打印的内容是什么?
<div onclick="console.log('div')"> <p onclick="console.log('p')"> Click here! </div>
A: p div
B: div p
C: p
D: div
答案: A
如果我们单击p,我们会看到两个日志:p和div。在事件传播期间,有三个阶段:捕获,目标和冒泡。 默认情况下,事件处理程序在冒泡阶段执行(除非您将useCapture设置为true)。 它从最深的嵌套元素向外延伸。
33. 下面代码的输出是什么?
const person = { name: "Lydia" }; function sayHi(age) { console.log(`${this.name} is ${age}`); } sayHi.call(person, 21); sayHi.bind(person, 21);
A: undefined is 21 Lydia is 21
B: function function
C: Lydia is 21 Lydia is 21
D: Lydia is 21 function
答案: D
使用两者,我们可以传递我们想要this关键字引用的对象。 但是,.call方法会立即执行!
.bind方法会返回函数的拷贝值,但带有绑定的上下文! 它不会立即执行。
34. 下面代码的输出是什么?
内容版权声明:除非注明,否则皆为本站原创文章。
转载注明出处:http://www.heiqu.com/97.html