JavaScript:«Запретить начало _ в идентификаторах» как опция в JSLint

StackOverflow https://stackoverflow.com/questions/403454

  •  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 есть некоторые правила относительно использования _, но нет ничего, что могло бы вызвать проблемы с тем, что вы описываете.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top