Недавно наткнулся на весьма нетривиальную фичу браузерного JavaScript.
Для начала, скрин, как пруф.Когда я это увидел уровень моего удивления был непередаваем. Казалось бы, почему переменная неожиданно кастанулась из number'a в string? Оказалось, все очень просто и необычно одновременно. Дело в том, что в браузере есть обьект Window, а name - одно из его полей, которое имеет тип string. В итоге, переменная с таким именем и еще некоторыми всегда будет приводится к типу поля. Прикольная и нетривиальная фишка. И если не знать - можно здорово попасть