Хм, на самом деле, вы можете использовать любое имя в качестве имени переменной.
Вместо того, чтобы ссылаться на переменную по имени, обращайтесь к ней по индексу массива, , поскольку все свойства объекта в JSможно получить по индексу *, а также по тому факту, что глобальные переменные являются просто свойствами объекта window
.
* строковый индекс может содержать буквально любую последовательность символов
Таким образом, вопрос, в свою очередь, может быть больше в строках "использовать ли зарезервированные слова в качестве имен переменных?"Здравый смысл сказал бы, что вы не должны, за исключением случаев, когда такое имя действительно связано с конструкцией, и вы не можете найти подходящую замену.
window['function'] = 2;
window['if'] = 4;
window['var'] = 8;
alert(window['function'] + window['if'] + window['var']);
Внимание!
Зарезервированные слова отличаются от собственной функциональностью .Хотя во многих случаях вы можете использовать имена, используемые как зарезервированные ключевые слова, в качестве переменных, встроенные функции могут быть перезаписаны.Например, мистер Саррис, упомянутый выше Node
(это нативная функция, а не зарезервированное ключевое слово), вы можете перезаписать ее, выполнив window['Node'] = myNewThing;
.В некоторых случаях это использовалось для достижения функциональности «оболочки» или «исправления», но не гарантируется работа в кросс-браузерном режиме (например, объект консоли MSIE).