Javascript 这个模糊代码中有浮点错误吗?

Javascript 这个模糊代码中有浮点错误吗?,javascript,arithmetic-expressions,deobfuscation,Javascript,Arithmetic Expressions,Deobfuscation,作为一个谜题,我昨天收到了下面的代码片段和问题 为什么这会给出773.06 var=10,21,38; 变量{{{uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu}; var{uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu

作为一个谜题,我昨天收到了下面的代码片段和问题

为什么这会给出773.06

var=10,21,38;
变量{{{uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu};
var{uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu;
var;

console.log(uuuuuuuuuuuuuuuuuuuuuuuuuuu)最后一行相当于:
71*10+21+(10/38*10+38)/10+38
这是
773.06


如果您忘记将
d
除以
a

,您可以得到
809.63157894
,让我们去掉膨胀,并给它一些可读的变量名:

//translated line by line
var a = 10, b = 21, c = 38;
var d = a/c*a + c;
//d = 100/38 + 38
//d = 40.63157894736842
var e = [12,71,82,91][1];
//e = 71;
var f = e*a + b + d/a + c;
//f = 710 + 21 + 4.xxx + 38
//f = 773.0631578947368
console.log(f);

实际上没有错误。这是故意混淆的,但如果简化,则会得到如下结果:

var A = 10;
var B = 21;
var C = 38;
var D = { A: { "yo": A / C * A + C }};
var E = [[[{"heh":{"hehe":[[[[12, 71, 82, 91]]]][0][0][0][1]}}]]];
var F = E[0][0][0].heh.hehe * A + B + D.A.yo / A + C;
console.log(F);
然后变成:

var D = 10 / 38 * 10 + 38;
var E = [[[[12, 71, 82, 91]]]][0][0][0][1];
var F = E * 10 + 21 + D / 10 + 38;
console.log(F);
var D = 10 / 38 * 10 + 38;
var F = 71 * 10 + 21 + D / 10 + 38;
console.log(F);
var F = 769 + (100 / 38 + 38) / 10;
console.log(F);
console.log(769 + 3.8 + 10 / 38);
然后变成:

var D = 10 / 38 * 10 + 38;
var E = [[[[12, 71, 82, 91]]]][0][0][0][1];
var F = E * 10 + 21 + D / 10 + 38;
console.log(F);
var D = 10 / 38 * 10 + 38;
var F = 71 * 10 + 21 + D / 10 + 38;
console.log(F);
var F = 769 + (100 / 38 + 38) / 10;
console.log(F);
console.log(769 + 3.8 + 10 / 38);
然后变成:

var D = 10 / 38 * 10 + 38;
var E = [[[[12, 71, 82, 91]]]][0][0][0][1];
var F = E * 10 + 21 + D / 10 + 38;
console.log(F);
var D = 10 / 38 * 10 + 38;
var F = 71 * 10 + 21 + D / 10 + 38;
console.log(F);
var F = 769 + (100 / 38 + 38) / 10;
console.log(F);
console.log(769 + 3.8 + 10 / 38);
然后变成:

var D = 10 / 38 * 10 + 38;
var E = [[[[12, 71, 82, 91]]]][0][0][0][1];
var F = E * 10 + 21 + D / 10 + 38;
console.log(F);
var D = 10 / 38 * 10 + 38;
var F = 71 * 10 + 21 + D / 10 + 38;
console.log(F);
var F = 769 + (100 / 38 + 38) / 10;
console.log(F);
console.log(769 + 3.8 + 10 / 38);

如果您将所有变量名从
\u
更改为
a,b,c
或类似的易读性代码是高尔夫吗?好像孩子们在球场上玩keyboard@EatPeanutButter如果您试图查看该问题是否返回800 v 773.06 b/c的浮点错误,为什么您会使该问题难以阅读?这可能是一个混淆竞争条目。:)基本上是(71*10)+21+((10/38*10+38)/10)+38,这给了我710+21+40,63+38=809,63,但我可能用38而不是20,因为我用cba来计算_条