Я читал an article about javascript PRNGs, и я наткнулся на что-то, что меня удивило:(Почему) установка `array [NaN]` ничего не делает?
var a = new Array(); var b; a[b++] = 1;
a
теперь[]
и исключение не выбрасывается - записываемый в массив просто исчезает. Попробуйте его в консоли браузера, если вы мне не верите.
Я не поверил ему, так что я попробовал его в моем браузере консоли (Firefox 47):
» var a = new Array();
» var b;
» a[b++] = 1
» a
← Array [ ]
» b
← NaN
Есть несколько любопытных вещей происходит здесь, но, в частности, я пытаясь понять, почему в заявлении a[b++] = 1
ничего не появляется.
Это делает - он назначен '1' до' а [NaN] '. Попробуйте получить доступ к 'a [NaN]', чтобы увидеть, что он есть. Это также скользкая дорога - вы ожидаете чего-то от объекта-хозяина, который не стандартизирован («консоль» - нет). Итак, откуда вы знаете, что вы видите * ожидается * или нет? – zerkms