Как стать автором
Обновить
123
0
Чаккаев Анатолий @1602

Пользователь

Отправить сообщение
Даниил Хармс «Старуха», «Кассирша» и всё остальное
Почитать можно на lib.ru

Настоятельно рекомендую к прочтению. Хармс настолько хорош, что и сказать об этом ничего нельзя :)
Игнорируйте слово скринкаст. Написал автоматом. Не скринкаст это конечно же )
net.tutsplus.com/articles/web-roundups/17-hours-of-javascript-from-the-masters/
9: Javascript Events

В этом скринкасте Peter-Paul Koch очень доходчиво говорит про события. Мне вчера очень помогло, может и вам поможет.
В данном случае, согласен, имеет место перегиб. Сейчас перепроверил даже свои настройки — мой JSLint не ругается на ++ и --

Но и ++i в данном контексте сбивает с толку. Согласитесь, что для цилклов стандартнее i++
Произойдет что-то вроде такого:
Человек, возможно не очень хорошо знающий нюансы языка, просматривающий код в поисках чего-то необходимого ему вместо того, чтобы пропустить этот фрагмент в фоновом режиме (что следовало бы делать), споткнется о не совсем понятный ему оператор. У него возникнет вопрос, почему тут используется префиксный инкремент, а не постфиксный. Он усомнится в своих знаниях нюансов языка (быть может). Вруг еще полезет гуглить. В любом случае, поток мыслей его прервется из-за использования нестандартного элемента в стандартной ситуации.

Я, кстати, не против использовать в этом контексте i++. Но, поскольку использую JSLint, пишу без варнингов, просто чтобы не пропустить чего-то действительно важного. Плюсы очевидны — операции инкремента всегда однообразны, что не заставляет читателя кода каждый думать о несущественном с одной стороны, а с другой стороны — дает мне, как пишущему программу, понять, что код — это не место для соревнования, кто хитрее напишет. Лично я против любой самодеятельности типа ++i там где можно обойтись i += 1. Но вообще говоря, если принятый стандарт требует обратного — я буду так же ратовать за использование ++i. Главное, чтобы везде было одинаково и не возникало вопросов, ни как писать, ни как читать такой код.
Я болен точно. И, кстати, не только Крокфорд, но и Макконнелл пишут о том что x++ и ++x надо использовать с осторожностью.
Всё верно. JSLint требует чтобы перед case ставился либо break либо case.
Думаю, так понятнее для нубов. Кроме того, JSLint предупреждает, что использовании анонимых функций в циклах. Ваш пример с точки зрения JSLint'a должен быть таким:
for (var x = 1; x < 10; x += 1) {
	setTimeout(function (x) {
		return function () {
			console.log(x);
		};
	}(x), 0);
}
Если уже выработан командный стиль, подразумевающий отсутствие точек с запятой, то тут уж не попишешь ничего — придется следовать. Но это ограничит рамки команды людьми которые либо уже в команде, либо не особо опытны в javascript и не имеют привычки ставить точки с запятой. Это касательно командной работы.

Касательно yui сказать не могу, т.к. пользуюсь другими инструментами (packer, jsmin), которые требуют расстановки запятых. Не знаю, можно ли доверить машине расставить точки с запятой.
Уже прикручено как минимум в Eclipse\Aptana\NetBeans. Про Visual Studio сказать не могу, так как не юзал. Вот тут говорят, что есть и для VS: www.codeproject.com/KB/macros/JSLintVS.aspx
Иногда так пишут чтобы визуально показать неотделимость блока от результата выполнения какой-то функции. Например
if ((result = try_to_fetch_result())) {
    do_something_with_result(result);
}
/*global $ */ работает для меня
Попробуйте лучше это:
for (var x = 1; x < 2; x += 1) {
    setTimeout(function () {
        console.log('x = ' + x);
    }, 2000);
}
'stop';

Первый вывод — это результат выполнения команд в консоли, который получается немедленно, далее — то что по таймеру.
Для использования jQuery я пишу /*global jQuery, $ */ и JSLint не ругается. По сути же jQuery — это две глобальные переменные, не на что там больше ругаться. Вообще говоря, по jQuery и правилам хорошего тона использования можно еще целую статью написать.
Вы правы.
Надо бы встроить в браузер JSLint, чтобы показывал ошибки такого рода :)
IE не любит запятые после последнего элемента массива или члена объекта. Бывает, что именно на это и указывает jslint: var a = [1,2,3,]; Хотя для других браузеров все ок.

Думаю, количество предупреждений зависит от реализации. Плагин для jEdit у меня выдает 51 ошибку, потом останавливается с фразой — слишком много ошибок.
Во-первых side-effects. Чтобы код можно было сжать точки с запятой должны стоять везде где надо. В javascript необязательность точки с запятой иногда достигается за счет того, что перевод строки считается за разделитель.
Во-вторых, при командной работе важен единый стиль. Код оформленный правильно, выглядит надежнее и в нем лучше видны ошибки.
Согласен, бывает и такое. JSLint ругается больше чем надо, этим и ценен. Лучше обратить внимание на его замечание и проигнорировать, чем не обратить внимание на ошибку.

Информация

В рейтинге
Не участвует
Откуда
Казань, Татарстан, Россия
Дата рождения
Зарегистрирован
Активность