送你43道JS面试题(收藏)(9)

现在,调用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