lexical scope
今天刷了几个题蛮有意思的,分享一下。
- 第一题
var foo = 1;
function bar() {
foo = 10;
return;
function foo() {}
}
bar();
alert(foo); //1
- 第二题
var x = 3;
var foo = {
x: 2,
baz: {
x: 1,
bar: function() {
return this.x;
}
}
}
var go = foo.baz.bar;
alert(go()); //3
alert(foo.baz.bar()); //1
- 第三题
var x = 4,
obj = {
x: 3,
bar: function() {
var x = 2;
setTimeout(function() {
var x = 1;
alert(this.x);
}, 1000);
}
};
obj.bar(); //4
- 第四题
var arr = [];
arr[0] = 'a';
arr[1] = 'b';
arr.foo = 'c';
alert(arr.length); //2
- 第五题
function foo(a) {
arguments[0] = 2;
alert(a);
}
foo(1); //2
Written on March 28, 2018