5个JavaScript闭包与作用域经典案例解析

作者:闭包旅人

时间:2026-10-28

浏览:186

本文通过5个JavaScript代码片段深入解析闭包与作用域机制。内容涵盖变量声明提升、函数表达式命名、arguments对象引用及this指向等核心概念。通过对比预测答案与真实运行结果,帮助开发者准确理解JavaScript引擎在变量查找和上下文绑定时的行为逻辑。

文章目录

JavaScript闭包与作用域测试案例

这里整理了5个简短的JavaScript脚本,旨在帮助你深入理解语言核心的闭包与作用域机制。在查看控制台输出之前,建议先尝试预测每个案例的弹窗内容,随后创建测试文件验证你的推断。准备好开始了吗?

1、

代码如下:

if (!("a" in window)) {
var a = 1;
 }
alert(a);

2、


代码如下:

var a = 1,
b = function a(x) {
x && a(--x);
     };
alert(a);

3、


代码如下:

function a(x) {
return x * 2;
 }
var a;
alert(a);

4、


代码如下:

function b(x, y, a) {
arguments[2] = 10;
alert(a);
 }
b(1, 2, 3);

5、


代码如下:

function a() {
alert(this);
 }
a.call(null);

我的预测答案分别是:undefined、1、不知道、10、null

答案在本文末尾,看答案之前,你敢留下你的猜测吗?

 

 

 

正确答案:1、undefined 2、1 3、function a(x){ return x * 2} 4、10 5、[object window]

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章