но функция не просто именованный блок (к тому же она может и неименованной быть :) ).
функция объект, её можно куда-нибудь передавать, вызывать и т.д. простой блок нельзя. и контекст, соответственно, создаётся в момент вызова функции.
но этот язык изначально был расчитан на нубов, ещё больше чем PHP. Там даже точки с запятыми сделали необязательными, чтобы прогеры-верстальщики не перенапряглись.
В JS ярчайшие проблемы с архитектурой.
Имеющие, кстати, теже самые корни, что и у PHP — делали изначально одно, а потом периодически поверх накручивали совершенно другое.
PHP-программисты убили родителей автора?
Почему, вместо того, чтобы программировать на своём любимом языке и получать от этого удовольствие нужно писать такую гневную простыню?
Раз мы ударяемся в дебри того, что кто-то мог переопределить undefined, то тут мы должны дойти до того, что этот же псих мог бы переопределить attachEvent. Что, кстати, мне кажется более имеющим смысл.
Мы проверяем существует ли свойство или нет (то есть undefined). Мне кажется куда логичнее проверять на undefined путём сравнения с undefined, хотя сравнение с приведением типов с null тоже в данном случае сработает.
ну и чёткое сравнение с undefined на 0,0001% теоретически лучше чем сравнение с приведением типа с null, 0 или пустой строкой (непомню уже, пустая строка false?)
функция объект, её можно куда-нибудь передавать, вызывать и т.д. простой блок нельзя. и контекст, соответственно, создаётся в момент вызова функции.
Имеющие, кстати, теже самые корни, что и у PHP — делали изначально одно, а потом периодически поверх накручивали совершенно другое.
И ещё тем, кто под ними 150 комментариев за час нафлудят.
Почему, вместо того, чтобы программировать на своём любимом языке и получать от этого удовольствие нужно писать такую гневную простыню?
Да, вы правы.
Про null выше ответил