Нестандартное поведение стандартного оператора ||
Иногда при кросс браузерном программировании бывает нужно выбрать из двух или более переменных которые зависят от типа браузера. Например типичный пример - отслеживание событий мыши - в IE параметры события берутся из глобального объекта event а в Firefox и многих других браузерах event передается как формальный параметр в обработчик события. Поэтому необходимо выбирать тот или иной способ получения этого объекта в зависимости от того какой браузер.
Самое первое, что приходит на ум это использовать тернарный оператор "<condition>?<if true>:<if false>":
a.onclick = function(e){ var ev = e?e:event; //далее работаем с ev }
Сегодня мне предложили еще более короткую запись:
a.onclick = function(e){ var ev = e||event; //далее как обычно }
Все отлично, все логично, но почему это работает? В MSDN четко сказано что || оператор логический и возвращает он true или false в зависимости от входных параметров. Если параметры на входе не логические то приводятся к логическим, т.е. не должно так работать а работает.
Скорее всего операция || возвращает первый не ложный аргумент, причем возвращает по ссылке в чем нетрудно убедиться:
var v1; //undefined var v2 = {}; var result = v1 || v2; alert(result===v2); //true
Интересно, такое поведение где нибудь документировано или это хак?
UPD: Оказыватся у Мозиллы все подробно на этот счет расписано:
https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Operators/Logical_Operators
Lusy in the sky with diamonds
Новый Сайентист пишет что что ребята из Вашингтона научились делать искуственные алмазы практически неограниченных размеров которые по своим свойствам превосходят природные.
Как пишут процесс изготовления искусственных алмазов известен давно, но они получаются не кристально-прозрачные а слегка мутно-коричневые, и чтобы сделать их прозрачными нужно слегка поджарить при привесьма высокой температуре и весьма высоком давлении, поэтому большие алмазы сделать не получалось. Сейчас же придумали их разогревать до двух тысяч градусов Цельсия в микроволновке заполненной водородом, как говорится в статье полученный таким образом алмаз был послан знакомому ювелиру, который сказал что тот по своим свойствам не отличим от природного.
Так что скоро на прилавках с дешевой бижутерией появится полно дешевых брюликов.
Буква Ё
Интересно, зачем на клавиатуре буква ё? Кто-нибудь вообще эту букву использует при наборе таких довольно популярных слов как "её", "ещё", "всё"?
За собой заметил, что я этой буквы не использую совсем. Срочно вернуть eЁ на место! Спасем букву Ё!
Террористы поддержки
Есть у меня одна хорошая знакомая у которой есть сайт , случилось этой знакомой нанять для редизайна и поддержки своего сайта вебстудию DG. Дала она им свой логин/пароль от панели управления хостинга на MasterHost, эти ребята первым делом сменили пароль на свой и приступили к работе. Ребята работают, делают сайт, поддерживают, вобщем все отлично.
Но вот потребовался этой знакомой доступ к панели управления своего сайта. Просит она ребят из студии предоставить ей пароль с СВОЕМУ хостингу СВОЕГО сайта, который они сменили, а они и говорят, не дадим мы тебе пароль, не хотим чтобы кто то ещё кроме нас по твоему сайту лазил, пароль дадим только в если ты хочешь разорвать с нами всякие отношения, тогда пожалуйста скажем пароль.
Т.е. хостинг принадлежит заказчику, сайт принадлежит заказчику а какая то сраная фирма, разработавшая сайт не дает к нему доступ.
Отсюда вывод - не нужно работать cо студией DG если не хотите проблем со своим сайтом.
Не удивлюсь что исходники к флешкам они тоже не предоставят. А без исходников затраты на редизайн сайта будут примерно такие же как если бы он разрабатывался с нуля.