Давно хотел уже "выкрикнуть душою", а тут предоставился удобный случай. Итак курс лекций "Вселенское твердолобие. Методы борьбы.".
Заборы в коде.
Вот cтрочка кода из первого попавшегося поста:
setTimeout('setOpacity(\''+obj+'\', '+i+')',50*i);
Вот кто может объяснить наличие этих треклятых наклонных реек? Тут виноватого, мне кажется, не найти. Эти заборы встречаются практически в каждой бумажной(и не только) книжонке связанной с программированием. Смело желаю их авторам жидко обосраться… Запоминаем (а лучше записываем): в нашем распоряжении имеется два вида «кавычек» – (' и "), и властью данной мн ой не так во имя чита вы вольны их использовать в произвольном порядке.
setTimeout('setOpacity("'+obj+'", '+i+')',50*i);
Прежде чем нарисовать забор пойдите выпейте чаю. Если желание не прошло – налейте ещё…
Аналогичный же случай с pcre – развею миф о том, что ограничителями регулярного выражения могут быть только заборные рейки? Сравните:
$re = '/(\d{2})\/(\d{2})\/(\d{4})/';
и
$re = '~(\d{2})/(\d{2})/(\d{4})~';
P.S.
Раз уж я доколебался до несчастной строчки с таймаутом, завершу атаку на твердолобие контрольным ударом с обоих флангов.
Опять-таки луч кровавого поноса тому, кто научил вас передавать аргументом в setTimeout строку, тогда как по уму передать надо функцию.
setTimeout(function(){setOpacity(obj,i);},50*i);
И никогда более не пишите setTimeout("func()",100);, иначе у вас будут ломкими ногти, появиться перхоть и насмерть замучают кариозные монстры.
setTimeout(func,100);
P.P.S.
Я надеюсь NoNseNs не примет близко к сердцу данный опус и поймёт всё правильно. Спасибо за внимание.