JavaScript:«Запретить начало _ в идентификаторах» как опция в JSLint
-
03-07-2019 - |
Вопрос
Я только начал писать свой JavaScript-фреймворк (просто для ознакомления) и добавил к некоторым частным членам префикс _, вроде такого:
var _isFireBugEnabled = function () {
return (window.console && window.console.firebug);
};
Когда я сравнил свой код с кодом Крокфорда JSLint (как всегда) с Recommended Options
мне сказали, что нельзя использовать _ в качестве идентификатора.
Мой вопрос в том, Почему JSLint предупреждает меня о том, что я не использую _ в качестве идентификатора?
Есть ли какие-то побочные эффекты или последствия, которые мне здесь не хватает?
ПС.Насколько я смог просканировать сейчас, это не задокументировано в книга
Решение
Причина в том, что Дуглас Крокфорд ненавидит около 78% Javascript*.Многие считают его слишком строгим, и на самом деле многие библиотеки используют начальные подчеркивания в рабочем коде.Я не вижу в этом ничего плохого.Побочных эффектов нет.
Кроме того, «$», а не подчеркивание, был символом, отведенным для «системного» кода ECMA-спецификация.
из ECMA 262, раздел 7.6:
Этот стандарт указывает один отход от грамматики, приведенной в стандарте Unicode:Знак доллара ($) и подчеркивание (_) разрешены в любом месте идентификатора.Знак доллара предназначен только для использования только в механически сгенерированном коде.
*Примечание:Я шутю.На самом деле он ненавидит только половину, и обычно у него есть веские причины.Я бы не согласился с Крокфордом, но обычно он совершенно прав.
Другие советы
Я даже написал об этом Крокфорду по электронной почте.Вот его ответ:
Я думаю, что _ должен быть зарезервирован для реализации системного кода и не используется приложениями.
Я с ним несколько не согласен, я склонен использовать _ для префикса действительно частных членов в моих собственных классах, потому что это дает мне понять, что является частным.В Google Caja есть некоторые правила относительно использования _, но нет ничего, что могло бы вызвать проблемы с тем, что вы описываете.