Я вырос на программировании на C ++ и Java, где все было безопасно и красиво. Компиляторы позаботились о том, чтобы держать меня под контролем, если я когда-нибудь заблудился. Конечно, в колледже все делали маленький Perl, но я не вдыхал. Дети в наши дни все о PHP на бэкэнде и Javascript на фронте. Пытаясь быть модным, я делаю то же самое (для веб-разработки). Проблема, с которой я продолжаю сталкиваться, заключается в том, что я случайно добавляю знак доллара ($) перед обычными переменными в Javascript, и, конечно, никто ничего не говорит, потому что этот законный синтаксис часто используется для объектов jQuery.
Существуют ли какие-либо средства отладки или хитрости для разработчиков, чтобы уловить путаницу со знаком доллара? Вы часто совершаете одну и ту же ошибку, и как вы справляетесь с ней эмоционально? Инструменты разработчика Chrome не всегда видят это как ошибку Javascript. Я использую PhpStorm и Emacs для разработки, но они не улавливают мою глупость, хотя я подозреваю, что Emacs делает, но предпочитает не говорить мне об этом, несмотря на это.
Если вы считаете этот вопрос смешным, я думаю, что вы правы. Но мы живем в мире, где перед переменной стоит знак доллара. В таком мире нет ничего смешного.
Ответы:
В использовании
$
переменных нет ничего плохого . Я бы не стал делать это специально для каждой переменной, но это все еще допустимый синтаксис. jQuery является одним из примеров, где$
используется в качестве имени переменной. Вот почему «инструменты разработчика Chrome не всегда видят, что это ошибка Javascript» , потому что, во-первых, ошибки нет.Если вы боитесь писать код вроде:
тогда вы должны использовать средство проверки стиля, такое как jsLint , jsHint или Google Closure Linter . Какой из них? Вам решать сделать выбор. Чтобы помочь вам с этим, вот несколько заметок:
Стиль
Google Closure Linter следует Руководству по стилю Google JavaScript , о котором известно, что оно сделано умно. Хорошим вариантом является использование хорошо известного стиля для JavaScript или любого из шести других языков : когда вы делитесь своим кодом или нанимаете нового разработчика, скорее всего, они уже знакомы с этим стилем.
Многим разработчикам знаком и стиль Дугласа Крокфорда. Этот стиль подробно объясняется в JavaScript: The Good Parts , книга, которую стоит купить любому, кто работает с JavaScript.
Что касается jsHint, я не могу найти, какие соглашения используются, и сам сайт, кажется, избегает говорить на эту тему. Может быть, я что-то пропустил.
Поддержка IDE
И jsLint, и jsHint поддерживаются PhpStorm. Это также относится и к Google Closure Linter.
Окружающая обстановка
Google Closure Linter является одним из серии инструментов . Если вы уже используете Google Closure Compiler или Google Closure Library , было бы предпочтительнее выбрать Closure Linter над другими инструментами.
взыскательность
jsLint, как известно, строгий. jsHint более терпим, что не всегда хорошо. Например, одна из причин для разветвления jsLint для jsHint объясняется в статье, в которой показан плохой код, который приведет к ошибке в jsLint, но не в jsHint:
Код плохой, потому что похоже, что JavaScript имеет область видимости блока, а его нет. См. JavaScript: Хорошие части, с. 102, Приложение A: Ужасные Части, Область применения. Другими словами, глядя на код, не зная языка, мы ожидаем,
name
что он не будет виден вне цикла, пока он останется видимым.Что касается Google Closure Linter, я считаю, что он находится где-то посередине между jsLint и jsHint, но у меня недостаточно информации для его поддержки.
Вывод
Я бы избегал jsHint: он слишком разрешительный, что означает, что он не найдет потенциальных ошибок, которые обнаружат другие линтеры. Руководство по стилю, которое используется, трудно найти.
Среди jsLint и Google Closure Linter выбор не очевиден. Оба написаны экспертами, оба следуют строгому, хорошо описанному руководству по стилю, которому уже следуют тысячи разработчиков. Используйте оба в течение некоторого времени, затем выберите тот, который более практичен для вас.
источник