1. if( undefined === someVar )
2. {
3. // если переменной нет, мы ее создаем
4. var someVar = 1;
5. }
var'ы создаются до начала выполнения скрипта. Поэтому someVar уже будет создана, и ей будет присвоено значение undefined. Далее, происходит (= 1) лишь присвоение нового значения, а не создание переменной.
Да нет, второй вариант — это полноценный объект, у него могут быть свои свойства (в отличии от первого). Первый же — примитив, при вызове операций которого создаётся объектный wrapper.
> Если вы хотите и рыбку съесть, и косточкой не подавиться — мне нечего предложить
Только без демагогии ;)
> Хотите хорошо знать js — читайте книжки
Да и в приведённых книжках куча недочётов. Если Вы хотите более-менее глубоко знать JS — прочтите стандарт.
> Хотите знать js как-нибудь — обучайтесь на таких статьях
Да бросьте, Вы, я лишь отметил, что, если Вы достигли уровня «неплохо» (по Вашей мерке), нет смысла говорить сверху о других, как о «js-былокодерах» ;)
Ну тогда (коль скоро Вы взялись судить/критиковать), надо, «критикуя, предлагать» (хотя бы советы по улучшению, указание на недочёт). Просто говорить, что кто-то не знает JS на относительном уровне «неплохо» и называть их быдлокодерами — какой толк?
Если теория кажется чересчур академической, то умение объяснить простым языком — это хорошее умение. Главное — чтобы в этих упрощениях не нарушить идеологию и не «переврать» с основной теорией.
Рутина никому не нужна. Никто за неё не ратует. Другой вопрос об исполнении, оптимальности и качестве кода по устранению этой рутины. А вот здесь уже начнётся бессмысленный холивор (насколько глубого Вы анализировали код jQuery?). Никто не говорит, что фреймворки не нужны, просто могут быть свои наработки, легче, оптимальней и быстрее. Но, естественно, это Ваше право, никто Вас насильно не отговаривает.
Ну это во многих областях так ;) Глубоких теоретических и практических профессионалов мало.
var'ы создаются до начала выполнения скрипта. Поэтому someVar уже будет создана, и ей будет присвоено значение undefined. Далее, происходит (= 1) лишь присвоение нового значения, а не создание переменной.
Хорошо, если б это было так. Но это не так ;)
> Стандарт — это чистая теория.
Незание/непонимание этой теории может приводить к белиберде и искажённому восприятию технологии.
> var intVal = 5;
> var intVal = new Number( 5 );
Здесь не одно и тоже. В первом случае — примитив, во втором — объект.
Почему это? Смотря, какая аудитория, и запросы.
> потому что понимают как должен быть построен процесс обучения
Не факт, умение преподавать — это тоже талант и опыт (и может быть не связан с очень глубокими знаниями).
Только без демагогии ;)
> Хотите хорошо знать js — читайте книжки
Да и в приведённых книжках куча недочётов. Если Вы хотите более-менее глубоко знать JS — прочтите стандарт.
> Хотите знать js как-нибудь — обучайтесь на таких статьях
Да бросьте, Вы, я лишь отметил, что, если Вы достигли уровня «неплохо» (по Вашей мерке), нет смысла говорить сверху о других, как о «js-былокодерах» ;)
Факт.
В смысле?
Ну тогда (коль скоро Вы взялись судить/критиковать), надо, «критикуя, предлагать» (хотя бы советы по улучшению, указание на недочёт). Просто говорить, что кто-то не знает JS на относительном уровне «неплохо» и называть их быдлокодерами — какой толк?
относительно это тоже
Может быть Вы знаете на «должном» уровне? Вы себя позиционируете не как «js-быдлокодер»?
А, кстати, если JS нравится, посмотрите и на Ruby (и Python), они идеологически похожи.
Да ну. Какая разница, где знающий человек пишет?
P.S.: посмотрите, также, Ruby и Python, они похожи на JS.
не только безымянная
> абсолютно ОО
Нет такого. Любая реализация вправе вносить свои коррективы и новшества, если они технологически и идеологически обоснованы.
Рутина никому не нужна. Никто за неё не ратует. Другой вопрос об исполнении, оптимальности и качестве кода по устранению этой рутины. А вот здесь уже начнётся бессмысленный холивор (насколько глубого Вы анализировали код jQuery?). Никто не говорит, что фреймворки не нужны, просто могут быть свои наработки, легче, оптимальней и быстрее. Но, естественно, это Ваше право, никто Вас насильно не отговаривает.
Можно, также, здесь рассуждения на эту тему почитать — javascript.ru/forum/offtopic/2813-storonnie-biblioteki-byt-ili-ne-byt.html
shop_cart_count = 0 — скажет «непонятный символ в строке такой-то»
Это еще что за новость? Может у вас есть DOM-элемент с таким же id? Просто IE может маппитить id'шники в глобальную область.