Ich las an article about javascript PRNGs, und ich kam in etwas, das mich überrascht:(Warum) macht das Setzen von `Array [NaN]` nichts?
var a = new Array(); var b; a[b++] = 1;
a
ist jetzt[]
und keine Ausnahme ausgelöst wird - die Schreib einfach verschwindet mit dem Array. Probieren Sie es in Ihrer Browser-Konsole aus, wenn Sie mir nicht glauben.
ich glaubte ihm nicht, so habe ich versucht, es in meinem Browser-Konsole aus (Firefox 47):
» var a = new Array();
» var b;
» a[b++] = 1
» a
← Array [ ]
» b
← NaN
Es gibt mehrere seltsame Dinge hier los ist, aber vor allem, ich bin versuchen zu verstehen, warum die Aussage a[b++] = 1
nichts zu tun scheint.
Es tut - es die '1' an den 'a [NaN]' zugeordnet. Versuche auf 'a [NaN]' zuzugreifen, um zu sehen, dass es da ist. Es ist auch eine glatte Straße dort - Sie erwarten etwas von einem Host-Objekt, das nicht standardisiert ist (die "Konsole" ist nicht). Also, wie weißt du, was du siehst, ist * erwartet * oder nicht? – zerkms