【发布时间】:2015-09-01 17:03:25
【问题描述】:
在下面的 sn-p 中,为什么whatDoesItDo() 函数将“失败”作为字符串返回?
如果有人能解释这种行为背后的概念会很有帮助。
function whatDoesItDo() {
return (![] + [])[+[]] + (![] + [])[+!+[]] +
([![]] + [][
[]
])[+!+[] + [+[]]] + (![] + [])[!+[] + !+[]];
}
function result() {
document.getElementById("result").innerHTML = whatDoesItDo();
}
result();
<html>
<body>
<p id="result"></p>
</body>
</html>
【问题讨论】:
-
您的预期输出是什么?
-
"fail" 是输出。但问题是为什么?
-
如果搜索这类问题更容易就好了。像这样的问题被问过太多次了。
-
@FelixKling:也许我们应该添加一个标签,比如
javascript-coercion-games,这样我们以后可以找到它们。 :-) -
@FelixKling:我最终称它为
js-type-coercion-puzzles。我们会看看它是否能存活下来。 :-)
标签: javascript type-conversion type-coercion