首页 > 淘宝 躲猫猫 javascript 题目求解

淘宝 躲猫猫 javascript 题目求解

这是 一道javascript 题目, 答案应该是一个url, 该如何解?
请大家帮忙, 贴答案的时候也顺便解释下原理呗:

a="hostname,test,value,input,getElementsByTagName,nextQuiz,23805,http,protocol,location,reverse,join,split,w2YHUbQTv6z4COflZD7FXGxLWTO?/ziuq/moc.oaboat.deu//:ptth,GET,...".split(",");this[a[5]]=a[13][a[12]]("")[a[10]]()[a[11]]("");0;

淘宝的UED题目:

a="hostname,test,value,input,getElementsByTagName,nextQuiz,23805,http,protocol,location,reverse,join,split,w2YHUbQTv6z4COflZD7FXGxLWTO?/ziuq/moc.oaboat.deu//:ptth,GET,...".split(",");
this[a[5]]=a[13][a[12]]("")[a[10]]()[a[11]]("");
0;

console.log(this[a[5]]);

把a用","分隔成数组,将其中的 w2YHUbQTv6z4COflZD7FXGxLWTO?/ziuq/moc.oaboat.deu//:ptth 倒序输出
运行一遍输出的结果是:

http://ued.taobao.com/quiz/?OTWLxGXF7DZlfOC4z6vTQbUHY2w

this[a[5]]=a[13][a[12]]("")[a[10]]()[a[11]]("");

相当于:

this['nextQuiz'] = "w2YHUbQTv6z4COflZD7FXGxLWTO?/ziuq/moc.oaboat.deu//:ptth".split("").reverse().join("");

所以结果是

location.href = nextQuiz;

个人认为原理就是作为 Javascript 对象的方法调用,下面两种形式是等价的:

obj.method();
等价于
obj['method']();

恭喜您,全部答对了!
本次活动已结束,《Javascript语言精粹-修订版》已经送完了^_^!
欢迎参下一次活动。
坑爹啊

【热门文章】
【热门文章】