JavaScript的脑筋急转弯五则

对于程序员来说,思维一定不能固化,毕竟可供我们选择的方法有很多,这些方法能够带来的用处也各不相同,因此我们需要因地制宜,根据实际情况使用具体的方法与程序。当然大千方法,无奇不有,在某些极特殊的情况中,可能发展和我们所构想的完全不同,然后看了答案才发现,哦!原来是这么个流程。

我们接下出五个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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值