首页 > 解决方案 > 这些 javascript 面试问题的答案的解释是什么?

问题描述

有人可以帮我解释下面的片段。这些都是我面试的时候问的。请发布带有推理的答案。

在此处输入图像描述

标签: javascript

解决方案


第一个例子非常简单。被employeeId定义在外面foo functionfoo function被调用,一个新的值被分配给employeeId,从它返回foo function并打印该值。

第二个示例中的棘手部分function employeeId(){}function foo(). 当代码执行并且您在 中时function foofunction employeeId将被定义/提升。您可以认为它就像您正在创建一个变量employeeId并在那里分配了一个函数。因此,当代码实际执行时,它将使用function employeeId已定义/提升的 this,并将使用值“123bcd”覆盖它。这样,外部作用域的employeeId 保持不变。

编辑 1:当我在寻找提供额外的资源时,这里有一个关于提升的问题和你发布的同样的问题:JavaScript 'hoisting'


推荐阅读