Подтвердить что ты не робот

Почему JSLint хочет, чтобы я использовал двойные кавычки вместо одиночных кавычек? Ожидаемый '' 'и вместо этого увидел' ''

Недавно я начал видеть JSLint, указав следующее предупреждение:

JSLint: Ожидается '' 'и вместо этого увидит' ''.

Другими словами, он хочет, чтобы я использовал двойные кавычки вместо одиночных кавычек. Почему JSLint предупреждает меня об этом? Не одинарные кавычки и двойные кавычки, более или менее взаимозаменяемые в JavaScript, подчиняются только предпочтениям программиста?

4b9b3361

Ответ 1

2016-02-07 версия JSLint изменилась, чтобы предпочесть двойные кавычки по одинарным кавычкам. Дуглас Крокфорд, разработчик JSLint и влиятельный разработчик для JavaScript и JSON, предоставил это обоснование:

Когда я впервые встретил JavaScript, он [sic] был удивлен, что у него были два вида кавычек, и я попытался понять это, используя одиночный для внутреннего текста и двойной для внешнего.

Но в конце концов я понял, что различие не стоит беспорядка и путаницы, которая возникает из-за двух, когда требуется только одна. Я решил пойти с двойным, потому что это то, что использует JSON, и это позволяет избежать ошибок, вызванных перегрузкой апострофа. Я был укушен этим.

В общем, я ищу способы сделать язык меньшим и лучшим. Котировки падают в том же классе, что и null и undefined. Нам действительно не нужны оба.

Я попробовал это на своем собственном коде, и я думаю, что это улучшение. В конце концов, я могу добавить option.single в JSLint.

Это произошло: option.single был добавлен в 2016-06-09 версия JSLint, так что теперь вы можете сказать JSLint, чтобы опционально проигнорировать одиночные кавычки.

Крокфорд более кратко повторил свое обоснование двойных кавычек по одинарным кавычкам в более позднем обсуждении:

Я обнаружил, что люди с трудом справляются с двумя типами котировок. Поскольку второй набор совершенно не нужен, и поскольку второй набор [одиночные кавычки] может вводить проблемы и путаницы, теперь я рекомендую использовать только двойные кавычки.

Ответ 2

Это предупреждение от спама от очень упрямого инструмента, нет веских оснований для этого.

Старые инструменты lint (JSLint и JSHint) были полностью заменены на ESLint, который поддерживает больше правил и позволяет настраивать параметры вы действительно заинтересованы. В частности, правило quotes позволяет вам полностью выбрать одиночное, двойное или игнорировать цитирование.