Javascript字符串求值

Javascript字符串求值,javascript,Javascript,有一家葡萄牙IT公司正在寻找一些领域的开发人员,出于好奇(谢天谢地,我已经有了一份工作),我去查看了招聘启事 当我去查看JS开发者的帖子时,他们提供了一段引起我注意的JS代码。我已经在JS上工作了一段时间,我发现自己会时不时地回到JS编程上来,但老实说,我从未见过任何类似于给定代码的东西 代码如下: !(function(x){ '6D 61 6E'.split(' ').forEach(function(a){ x+=String.fromCharCode(parseI

有一家葡萄牙IT公司正在寻找一些领域的开发人员,出于好奇(谢天谢地,我已经有了一份工作),我去查看了招聘启事

当我去查看JS开发者的帖子时,他们提供了一段引起我注意的JS代码。我已经在JS上工作了一段时间,我发现自己会时不时地回到JS编程上来,但老实说,我从未见过任何类似于给定代码的东西

代码如下:

!(function(x){
    '6D 61 6E'.split(' ').forEach(function(a){
        x+=String.fromCharCode(parseInt(a,16));
    });
    return x;
})('');
我在Chrome的JS控制台上写了这篇文章,结果是“false”。 如果我理解正确,“奇怪”代码,根据ASCII表读取“m a n”,parseInt应该返回一个基于十六进制基数的整数。然后再次将其转换为字符串,这次是基于字符的十进制值。 为了完成这一切,我们通过“否定它”来评估返回值“x”(不是我想要的词,但当时记不起更好的词……评估可能?)

那么,为什么输出为假?如果我们不计算返回值,结果就是预期的“man”,但我不明白为什么在这个特定的实例中我们会得到false


有人想详细说明吗?

正如你所想

return x;
…将返回字符串“man”。但你的问题似乎归结为为什么
!“人”
给出
false

从,逻辑不是

如果其单个操作数可以转换为
true
,则返回
false
;否则,返回
true


空字符串
为假,因此
!“
真的
,但任何其他字符串都是真的,所以
!“任何其他字符串”
都是
false

这与
addEventListener()有什么关系?
@nnnnnn我犯了错误,我想问另一个问题,但我没有完成,忘了更改标题……)@nnnnnnnn我来发布这个问题,因为我尝试使用其他字符串而不是空字符串,结果仍然是false,但我很确定你的解释是正确的