Объекты Javascript могут использоваться как карты. Следующие коды действительны:
var x = {};
x.a = 1;
x['b'] = 2; // the same as x.b = 2;
x[3] = 3; // x.3 won't work, but this syntax works fine. Also, x[3] == x['3'].
x['What, this works too?!?!?'] = 'Yup, it does!';
Но сегодня я проверил другой случай, который... кажется, работает, но поднимает в моей голове некоторые предупреждающие флаги, потому что выглядит... неправильно:
x[null] = 42;
Теперь было бы очень здорово, если бы это сработало, как ожидалось (мне не придется переписывать кучу кода), но могу ли я на это положиться? Или, может быть, это просто недокументированное поведение, которое просто происходит во всех современных браузерах, но может прекратить работу над следующей версией Google Chrome?