在严格模式下,全局作用域中函数中this的值是什么?
在严格模式(strict mode)下,如果你直接在全局作用域中定义一个函数,并在该函数内部使用 this 关键字,那么 this 的值将是 undefined,而不是全局对象(在浏览器环境中,全局对象通常是 window)。
这是因为严格模式对 this 的绑定做了更严格的限制,以避免一些常见的错误和误用。在非严格模式下,全局作用域中的函数内部的 this 会默认指向全局对象,这有时会导致一些难以追踪的问题。
下面是一个示例代码,展示了在严格模式下全局作用域中函数的 this 值:
"use strict";
function exampleFunction() {
console.log(this); // 输出:undefined
}
exampleFunction();
在这个示例中,我们使用了 "use strict"; 声明来启用严格模式。然后,我们定义了一个名为 exampleFunction 的函数,并在该函数内部打印 this 的值。当我们调用 exampleFunction() 时,控制台将输出 undefined,表明在严格模式下,全局作用域中函数的 this 值是 undefined。
浙公网安备 33010602011771号