对于程序员来说,思维一定不能固化,毕竟可供我们选择的方法有很多,这些方法能够带来的用处也各不相同,因此我们需要因地制宜,根据实际情况使用具体的方法与程序。当然大千方法,无奇不有,在某些极特殊的情况中,可能发展和我们所构想的完全不同,然后看了答案才发现,哦!原来是这么个流程。
我们接下出五个JavaScript的脑筋急转弯,答案会写在最后,请努力答完确认无误后,再去看哦。
一、
var color = 'green';
var test4399 = {
color: 'blue',
getColor: function(){
var color = "red";
alert(this.color);
}
}
var getColor = test4399.getColor;
getColor();
test4399.getColor();
以上 JavaScript 代码执行后, 浏览器 alert 出来的结果分别是()
A undefined,red
B green,blue
C undefined,blue
D green,undefined
E blued,undefined
二、
var foo = {n:1};
(function(foo){
console.log(foo.n);
foo.n = 3;
var foo = {n:2};
console.log(foo.n);
})(foo);
console.log(foo.n);
以上 JavaScript 代码,在浏览器中运行的结果是
A 1 2 3
B undefined 2 1
C 报错
D 1 2 1
三、
let A = function() {}
A.prototype.a = 1;
let B = new A();
A.prototype = {
b: 2,
c: 3
}
let C = new A();
A.prototype.d = 4;
console.log(B.a);
console.log(B.b);
console.log(C.c);
console.log(C.d);
请问以上JS代码的输出是什么?
A 1、2、3、4
B 1、undefined、3、4
C 1、undefined、undefined、undefined
D undefined、2、3、4
四、
function A() {
this.do=function() {return ‘foo’;};
}
A.prototype=function() {
this.do=function() {return ‘bar’};
};
var x=new A().do();
x 的值是:
A bar
B 报错
C foo
D undefined
五、
var b = 3;
(function(){
b = 5;
var b = 2;
})();
console.log(b);
上面这段代码的输出是
A 5
B 3
C 2
D 程序报错
答案就在下面
B A B C B