Web前端常见面试题汇总(六)

开课吧开课吧小易2021-02-03 18:40

Web前端现在真的是越来越热门,所以面试者也越来越多。想要在面试中脱颖而出,面试前的准备工作是必不可小的。Web前端常见面试题你不多准备一些,你都不好意思去参加面试。今天,小编来为大家分享一波Web前端常见面试题。

1.变量提升(Hoisting)

执行以下代码的结果是什么?为什么?

Web前端面试

答案:

这段代码的执行结果是undefined 和 2。

这个结果的原因是,变量和函数都被提升(hoisted) 到了函数体的顶部。因此,当打印变量a时,它虽存在于函数体(因为a已经被声明),但仍然是undefined。换言之,上面的代码等同于下面的代码:

Web前端面试

再看如下代码:

Web前端面试

结果:

Web前端面试

2.在javascript中,this是如何工作的

以下代码的结果是什么?请解释你的答案。

Web前端面试

答案:

这段代码打印结果是:Aurelio De Rosa 和 John Doe 。原因是,JavaScript中关键字this所引用的是函数上下文,取决于函数是如何调用的,而不是怎么被定义的。

在第一个console.log(),getFullname()是作为obj.prop对象的函数被调用。因此,当前的上下文指代后者,并且函数返回这个对象的fullname属性。相反,当getFullname()被赋值给test变量时,当前的上下文是全局对象window,这是因为test被隐式地作为全局对象的属性。基于这一点,函数返回window的fullname,在本例中即为第一行代码设置的。

3.call() 和 apply()

修复前一个问题,让最后一个console.log() 打印输出Aurelio De Rosa.

答案:

这个问题可以通过运用call()或者apply()方法强制转换上下文环境。

Web前端面试

怎么样,小编上边分享的Web前端常见面试题够干货吧。如果你还想要更多这方面的干货知识,可以来开课吧广场Web前端面试频道。

有用
分享