有一家葡萄牙 IT 公司正在寻找一些领域的开发人员,只是出于好奇(因为我已经有工作,谢天谢地)我去查看招聘信息。
当我去查看 JS 开发者的帖子时,他们提供了一段 JS 代码,引起了我的注意。我已经用 JS 工作了一段时间,我发现自己时不时会回到用 JS 编程,但老实说,我从未见过任何与给出的代码相似的东西。
这是代码:
!(function(x){
'6D 61 6E'.split(' ').forEach(function(a){
x+=String.fromCharCode(parseInt(a,16));
});
return x;
})('');
我在 Chrome 的 JS 控制台上写了这个,输出为“假”。如果我理解正确,“奇怪”的代码,根据 ASCII 表读取“man”,并且 parseInt 应该返回一个基于十六进制基数的整数。然后它再次转换为字符串,这次是基于 chars 十进制值。为了完成这一切,我们通过“否定它”来评估返回 'x'(不是我正在寻找的词,但当时不记得更好的词了......估计可能吗?)。
那么,为什么输出是假的呢?如果我们不评估返回结果,则结果是预期的“人”,但我不明白为什么我们在这个特定实例上得到错误。
有人愿意详细说明吗?