这里有5个小脚本,有助于你真正理解Javascr ipt核心–闭包和作用域。没有在控制台运行之前,尝试回答每个案例中会弹出什么内容,然后你可以创建一个测试文件去核对你的答案。你准备好了吗?
1、
代码如下:
if (!(“a” in window)) {
var a = 1;
}
alert(a);
2、
代码如下:
var a = 1,
b = function a(x) {
x && a(–x);
};
alert(a);
3、
我们从一个测试开始。下面这个函数的功能是什么?
def foo(lst):
a = 0
for i in lst:
a += i
b = 1
for t in lst:
b *= i
return a, b
如果你觉得它的功能是“计算lst中所有元素的和与积”,不要沮丧。通常很难发现这里的错误。如果在大堆真实的代码中发现了这个错误就非常厉害了。——当你不知道这是一个测试时,很难发现这个错误。
这里的错误是在第二个循环体中使用了i而不是t。等下,这到底